Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions blueprints/voy/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
ddddversion: "3.8"

services:
voy:
image: ghcr.io/leomartindev/voy:2026.03.03-1
restart: unless-stopped
expose:
- "3000"
environment:
BUN_ENV: ${BUN_ENV}
DATABASE_URL: ${DATABASE_URL}
SEARXNG_URL: ${SEARXNG_URL}
BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET}
INSTANCE_NAME: ${INSTANCE_NAME}
SITE_URL: ${SITE_URL}
volumes:
- voy-data:/data
depends_on:
searxng:
condition: service_healthy

valkey:
image: valkey/valkey:8-alpine
restart: unless-stopped
command: valkey-server --save 30 1 --loglevel warning
volumes:
- valkey-data:/data
healthcheck:
test: ["CMD", "valkey-cli", "ping"]
interval: 5s
timeout: 5s
retries: 5

searxng:
image: searxng/searxng:2026.3.1-162c04a1c
restart: unless-stopped
environment:
SEARXNG_SECRET: ${SEARXNG_SECRET}
UWSGI_WORKERS: 2
UWSGI_THREADS: 2
UWSGI_ENABLE_THREADS: true
volumes:
- ../files/searxng:/etc/searxng
- searxng-data:/var/cache/searxng
depends_on:
valkey:
condition: service_healthy
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8080/healthz"]
interval: 10s
timeout: 5s
retries: 5

volumes:
voy-data: {}
valkey-data: {}
searxng-data: {}
51 changes: 51 additions & 0 deletions blueprints/voy/template.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
[variables]
main_domain = "${domain}"
max_request_timeout = "1.8"

[config]
[[config.domains]]
serviceName = "voy"
port = 3000
host = "${main_domain}"
path = "/"

[config.env]
BUN_ENV = "production"
DATABASE_URL = "/data/app.db"
SEARXNG_URL = "http://searxng:8080"
BETTER_AUTH_SECRET = "${password:64}"
SEARXNG_SECRET = "${password:32}"
INSTANCE_NAME = "Voy"
SITE_URL = "https://${main_domain}"

[[config.mounts]]
filePath = "/searxng/settings.yml"
content = """
use_default_settings: true

server:
secret_key: "${SEARXNG_SECRET}"
image_proxy: false
limiter: false
public_instance: false
max_results: 20

search:
autocomplete: duckduckgo
autocomplete_min: 3
max_page: 1
formats:
- json
categories:
- general
- images
- files

outgoing:
max_request_timeout: ${max_request_timeout}

enabled_plugins: []

valkey:
url: valkey://valkey:6379/0
"""
Binary file added blueprints/voy/voy.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
55 changes: 37 additions & 18 deletions meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -5858,6 +5858,24 @@
"open-source"
]
},
{
"id": "strapi",
"name": "Strapi",
"version": "v5.33.0",
"description": "Open-source headless CMS to build powerful APIs with built-in content management.",
"logo": "strapi.svg",
"links": {
"github": "https://github.com/strapi/strapi",
"discord": "https://discord.com/invite/strapi",
"docs": "https://docs.strapi.io",
"website": "https://strapi.io"
},
"tags": [
"headless",
"cms",
"content-management"
]
},
{
"id": "streamflow",
"name": "StreamFlow",
Expand All @@ -5877,24 +5895,6 @@
"media"
]
},
{
"id": "strapi",
"name": "Strapi",
"version": "v5.33.0",
"description": "Open-source headless CMS to build powerful APIs with built-in content management.",
"logo": "strapi.svg",
"links": {
"github": "https://github.com/strapi/strapi",
"discord": "https://discord.com/invite/strapi",
"docs": "https://docs.strapi.io",
"website": "https://strapi.io"
},
"tags": [
"headless",
"cms",
"content-management"
]
},
{
"id": "supabase",
"name": "SupaBase",
Expand Down Expand Up @@ -6369,6 +6369,25 @@
"project-management"
]
},
{
Comment thread
LeoMartinDev marked this conversation as resolved.
"id": "voy",
"name": "Voy",
"version": "2026.03.03-1",
"description": "A self-hosted, privacy-first metasearch engine built on top of SearXNG. All searches are proxied through your own server — no tracking, no data sent to third parties.",
"logo": "voy.jpg",
"links": {
"github": "https://github.com/LeoMartinDev/voy",
"website": "https://github.com/LeoMartinDev/voy",
"docs": "https://github.com/LeoMartinDev/voy#readme"
},
"tags": [
"search",
"search-engine",
"privacy",
"searxng",
"metasearch"
]
Comment thread
LeoMartinDev marked this conversation as resolved.
},
{
"id": "wallos",
"name": "Wallos",
Expand Down