Compare commits

..
3 Commits
Author SHA1 Message Date
+28 b373a6b7c5 New Version (#1295)
* chore: remove compose version + add checks (#1268)

* fix: reject deprecated Docker Compose version field

* chore: remove deprecated version field in docker compose

* chore(orbit): drop the obsolete compose version key

orbit was merged after this PR was opened and still had version: '3.8' at
the end of the file, which the new validator check rejects.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* Update Calcom Template to add all env vars (#1278)

* feat: add all env variables for calcom image and health checking for postgres + restart config for containers

* feat: add postgres var generators

* cachkey: bump version to 0.2.0 (#1277)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat: add PrivatePaste template (#1276)

* feat: add PrivatePaste template

Self-hosted clipboard sync with an encrypted, searchable history; apps for Windows, macOS, Linux and Android. Image ghcr.io/dynamicsninja/privatepaste:0.2.0 (linux/amd64, linux/arm64).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S7qnD4vNtkFtpTzPq1fw5R

* chore(privatepaste): use image 0.3.1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(phpmyadmin): migrate to the official phpMyAdmin Docker image (#1275)

* fix(phpmyadmin): migrate to the official phpMyAdmin Docker image

See: https://github.com/phpmyadmin/docker/issues/363
Signed-off-by: William Desportes <williamdes@wdes.fr>

* fix(phpmyadmin): update phpMyAdmin to 5.2.3

Pin the official image to the current release instead of a floating reference.

See: https://github.com/phpmyadmin/docker/issues/363
Signed-off-by: William Desportes <williamdes@wdes.fr>

* fix(phpmyadmin): match meta.json version to the 5.2.3 image

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Signed-off-by: William Desportes <williamdes@wdes.fr>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* Legejo: update to 1.33.0 (#1273)

Co-authored-by: Markus Rådberg <3110202+jularboolean@users.noreply.github.com>

* Add Uptime kotlin template (#1272)

* feat: add Uptime Kotlin Docker Compose setup

* fix: remove default timezone setting from Docker Compose

* fix: update Docker Compose configuration for uptime-kotlin service

* feat: add mcpspan template (#1270)

* feat: add mcpspan template

* chore(mcpspan): update to 0.13.0, with the dashboard's address for MCP clients signing in

* fix(junctio): update image to 0.2.6 (#1269)

* fix(junctio): update image to 0.2.5

* fix(junctio): update image to 0.2.6

* feat: add PostgreSQL with 80+ extensions (postgres-extensor) template (#1267)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(yuvomi): bump to 2.80.0 and generate DB_ENCRYPTION_KEY (#1266)

Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Ulas Kalayci <ulas.kalayci@icloud.com>

* feat: add OpenTodo template (#1265)

* feat: add OpenTodo template

* OpenTodo: update to 0.12.0

* OpenTodo 0.13.0

* fix(ponos): update template to 0.2.0 and move to the hermez-agency image (#1263)

* Add Reelsaw template (#1262)

Signed-off-by: dillonstreator <dillonstreator@gmail.com>

* feat(blueprints): add maintenant template (#1261)

* fix(docuseal): correct PostgreSQL 18 volume mount (#1290)

* feat(blueprints): add Zeqqat template (#1288)

* feat(umami): bump to 3.4.1 (#1287)

* feat(umami): bump to 3.4.1

* feat(umami): bump to 3.4.1

* feat(privatepaste): bump to 0.5.0 (#1286)

* feat(privatepaste): bump to 0.5.0

* feat(privatepaste): bump to 0.5.0

* feat(privatepaste): bump to 0.5.0

* fix(libredb-studio): update the blueprint to 1.2.0 (#1283)

* chore(libredb-studio): bump image to 1.2.0

* fix(libredb-studio): set version to 1.2.0 and update the engine counts

meta.json still pinned 1.0.0 while docker-compose.yml pulls 1.2.0, which the
blueprint rules require to match. The description also carried the 0.18.2
driver and engine counts; 1.2.0 ships 42 drivers reaching 69 named engines.

* Update OpenTodo to 0.19.0 (#1281)

* feat(blueprints): add itsaplan template (#1282)

* Add Calnode template (#1280)

* feat: add calnode template

* feat: add commas to fix template

* feat: replace logo

* fix: add url prefix

* fix: Remove default value for litestream url when unconfigured

* fix(calnode): pin the exact 0.12.0 tag instead of the moving 0.12 tag

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat: add Customermates template (#1279)

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>

* feat: update openwa template to 0.25.0 (#1260)

* feat(openwa): bump template to 0.25.0

- Update OpenWA image to 0.25.0
- Add 75s stop grace period for the longer bounded teardown

* feat(openwa): enable the MCP server by default

- Add mcp_enabled and mcp_readonly template variables
- Pass MCP_ENABLED and MCP_READONLY to the container
- Keep the read-only tool tier as the safe default

* feat(openwa): enable Swagger UI by default

Add an enable_swagger variable, wired to ENABLE_SWAGGER, so /api/docs is
served despite the upstream production default.

* chore: update the dossier version and disable germany's BA (#1258)

* chore: update the dossier version and disable germany's BA

* fix(dossier): match meta.json version to the v1.9.0 image

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* Add Container Monitoring template (cAdvisor, Prometheus, Grafana) (#1257)

* Add container-monitoring template

* Default container detail dashboard to a single container

* Update SolidPing to 0.41.0 (#1256)

* feat: update appwrite template to 2.7.0 (#1259)

* feat(appwrite): bump template to 2.6.1

- Update appwrite/appwrite images to 2.6.1 and console to 1.2.97
- Add ExifTool service for image metadata stripping
- Add S3 path-style, VCS Entire, and maintenance queue variables
- Add maintenance scheduler interval and worker pool sizing
- Harden healthcheck with readiness marker and raise PostgreSQL shm
- Bump orchestrator to 2.2.4
- Remove duplicate _APP_CONSOLE_HOSTNAMES entry

* feat(appwrite): bump template to 2.6.2

* fix(appwrite): keep wildcard routers below console

Dokploy generates the console/API routers without a priority, so Traefik
falls back to rule length. A Sites/Functions HostRegexp rooted at the apex
also matches the console host and is longer, so it 404s the console.

The generated router names include a per-domain serial, so the template
cannot set their priority. Pin the template-owned wildcard routers to the
lowest priority instead, for both web and websecure.

* feat(appwrite): bump template to 2.7.0

- appwrite/appwrite 2.6.2 -> 2.7.0 across all services
- Console 1.2.108 -> 1.2.138 (and fix VITE_APPWRITE_VERSION default)
- browser 0.3.8 -> 0.3.10
- orchestrator 2.2.4 -> 4.0.0
- add server key rotation vars (V2, CURRENT, OLDEST)
- add realtime limits, DNS_EXTERNAL, ALLOWED_INTERNAL_ADDRESSES, DB_MAX_CONNECTIONS
- add alert config, APNs push and DOMAIN_FUNCTIONS_FALLBACK
- add the optional appwrite-hansi code review service
- raise worker max coroutines from 79 to 83

* fix(appwrite): ship the reviews worker disabled by default

The self-hosted console profile keeps features.reviews off, so the Reviews
screen only shows up behind the internal debug flag. Running appwrite-hansi
without it means a container that cannot be configured from the UI, so keep
the service and its _APP_REVIEWS_* variables commented out and document the
three steps to opt in.

* Update Uptime Kuma image to 'next' version (#1264)

* Update Uptime Kuma image to 'next' version

Uptime Kuma "latest" status is stuck at older version and the official resource recommends to use the "next" tag to get the latest version.

* fix(uptime-kuma): pin 2.5.8 instead of the moving next tag

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat: add Puppetflow with Postgres template (#1271)

* feat: add Puppetflow with Postgres template

* chore: bump Puppetflow templates to v2026.10.25

* feat: add second Puppetflow queue worker

* fix: send Puppetflow logs to stderr

* fix: harden Puppetflow Dokploy deployments

* fix: keep Dokploy default certificate handling

* fix: use Dokploy default HTTP domains

* chore: bump Puppetflow templates to v2026.10.26

* fix: configure Puppetflow locale and connection timeout

* chore: bump Puppetflow templates to v2026.10.27

* chore: bump Puppetflow templates to v2026.10.28

* chore: bump Puppetflow templates to v2026.10.29

* chore: bump Puppetflow templates to 2026.10.30

* chore: bump Puppetflow templates to 2026.10.32

* fix: align Pinokio production browser config

* chore: bump Puppetflow templates to v2026.11.1

* chore: bump Puppetflow templates to v2026.11.3

* chore: bump Puppetflow templates to v2026.11.4

* chore: bump Puppetflow templates to v2026.11.5

* chore: bump Puppetflow templates to v2026.11.6

* chore: bump Puppetflow templates to v2026.11.7

* fix(puppetflow): use service names instead of container_name

Templates must not set container_name; Compose service names already
resolve inside the project, so REDIS_HOST, PINOKIO_HOST, DB_HOST and the
internal URLs now point at them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(puppetflow): pinokio has no v2026.11.7 image, use v2026.11.1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* Update NaviMusic to version 4.3.0 (#1285)

* fix(navi-music): update to version 4.3.0

* feat(navi-music): update entrypoint for improved startup behavior

* fix(navi-music): pin yt-cipher by digest (it only publishes a moving master tag)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* chore: update Windshift to v0.9.3 (#1254)

* chore: update Windshift to v0.9.1

* chore: update Windshift to v0.9.3

Point the blueprint at the current release instead of v0.9.1.

* fix: updates actions runner to 2.338.2 and maintained Node24 (#1255)

* fix: updates actions runner and selects maintained node runtime

* fix: updates actions runner to 2.338.2

* Add ShopNex (#1284)

* Add ShopNex template

* fix(shopnex): pin v0.13.1 instead of latest

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* Bump Dagu to 2.25.4 (#1293)

The template pins 2.10.7, which is fifteen minor releases behind the
current Dagu release. The compose file, basic auth variables, volume,
and port are unchanged and still valid on 2.25.4.

* Add kortix deployment to the list of templates (#1294)

* feat: upgrade Seafile template to 14.0 (#1251)

* feat: upgrade Seafile template to 14.0

* fix(seafile): pin seafile-mc 14.0.9 and sdoc-server 2.0.11 instead of moving -latest tags

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(blueprints): add CakePHP 5 template (#1291)

* feat(blueprints): add CakePHP 5 template (themusicdev/php-apache runtime + MariaDB)

* ci: re-trigger build preview (first run hit a transient npm registry failure)

* fix(blueprints/cakephp): env via [config.env] names; pin image to released 1.0.0 (review feedback)

---------

Signed-off-by: William Desportes <williamdes@wdes.fr>
Signed-off-by: dillonstreator <dillonstreator@gmail.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Madhav Gupta <114633095+M4dhav@users.noreply.github.com>
Co-authored-by: Félicio de SOUZA <feliciodsa.dev@gmail.com>
Co-authored-by: Ivan Ficko <ivan.ficko@outlook.com>
Co-authored-by: William Desportes <williamdes@wdes.fr>
Co-authored-by: Jularbool <markus@radberg.org>
Co-authored-by: Markus Rådberg <3110202+jularboolean@users.noreply.github.com>
Co-authored-by: Théo Meunier <62860058+TheoMeunier@users.noreply.github.com>
Co-authored-by: Kacper <kcprzaton@gmail.com>
Co-authored-by: Web Artisan <ad4ptec@gmail.com>
Co-authored-by: Jose Garcia <47431411+ruxwez@users.noreply.github.com>
Co-authored-by: Ulaş Kalaycı <108589275+ulsklyc@users.noreply.github.com>
Co-authored-by: Ulas Kalayci <ulas.kalayci@icloud.com>
Co-authored-by: Raffaele Pizzari <raffaele.pizzari@gmail.com>
Co-authored-by: Cardona <18017015+SalvadorCardona@users.noreply.github.com>
Co-authored-by: dillonstreator <dillonstreator@gmail.com>
Co-authored-by: Benjamin Touchard <benjamin@kolapsis.com>
Co-authored-by: JRK <jessym.reziga@gmail.com>
Co-authored-by: Perminus Gaita <35493600+Perminus-Gaita@users.noreply.github.com>
Co-authored-by: Lezetho <126505858+lezetho@users.noreply.github.com>
Co-authored-by: Yusuf Gündoğdu <yusufgundogdu555@gmail.com>
Co-authored-by: Waleed <waleedi825@gmail.com>
Co-authored-by: Benjamin Wagner <72468969+benjiwagner@users.noreply.github.com>
Co-authored-by: Carlos Dorneles <duducp2013@gmail.com>
Co-authored-by: Alien <hi@aien.me>
Co-authored-by: Ghazi Ben Dahmane <ghazi.ben.dahmane@gmail.com>
Co-authored-by: Florent Clairambault <florent.clairambault@gmail.com>
Co-authored-by: Thet Hmuu <thethmuueinsoe@gmail.com>
Co-authored-by: Andre Carbajal Vargas <carbajalvargasandre@gmail.com>
Co-authored-by: Stefan Ernst <ernst.stefan@icloud.com>
Co-authored-by: Noah <70114451+zFl4wless@users.noreply.github.com>
Co-authored-by: ArseniyDev <41956571+ArseniyX@users.noreply.github.com>
Co-authored-by: Yota Hamada <yohamta@gmail.com>
Co-authored-by: Kortix SEO <347261315+Kortix-seo@users.noreply.github.com>
Co-authored-by: Angel S. Moreno <angelxmoreno@gmail.com>
2026-11-05 10:20:57 +01:00
Mauricio SiuandGitHub cfce6b69d1 Merge pull request #1253 from Dokploy/canary
New version
2026-10-20 23:26:53 -06:00
Mauricio SiuandGitHub 62199f7d1e Merge pull request #1205 from Dokploy/canary
New Version
2026-10-07 21:12:57 -06:00
12 changed files with 24 additions and 213 deletions
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 40 KiB

@@ -1,95 +0,0 @@
# Dokploy blueprint for Brightbean Studio
# https://github.com/brightbeanxyz/brightbean-studio
#
# Stack: Django app (gunicorn) + background-task worker + PostgreSQL 16.
# The public edge (Caddy in the upstream compose) is intentionally dropped:
# Dokploy's Traefik terminates TLS and routes to `app:8000`.
#
# Images are built from source on deploy (the project publishes no image yet).
# Swap the anchor below to your own fork to deploy your fork:
# x-brightbean-repo: &brightbean-repo https://github.com/H54collective/brightbean-studio.git#main
x-brightbean-repo: &brightbean-repo https://github.com/brightbeanxyz/brightbean-studio.git#main
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: brightbean
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d brightbean"]
interval: 5s
timeout: 5s
retries: 10
migrate:
build:
context: *brightbean-repo
command: python manage.py migrate --noinput
restart: "no"
environment:
DJANGO_SETTINGS_MODULE: ${DJANGO_SETTINGS_MODULE}
SECRET_KEY: ${SECRET_KEY}
ENCRYPTION_KEY_SALT: ${ENCRYPTION_KEY_SALT}
DATABASE_URL: ${DATABASE_URL}
ALLOWED_HOSTS: ${ALLOWED_HOSTS}
APP_URL: ${APP_URL}
STORAGE_BACKEND: ${STORAGE_BACKEND}
MEDIA_ROOT: ${MEDIA_ROOT}
SERVE_MEDIA: ${SERVE_MEDIA}
depends_on:
postgres:
condition: service_healthy
app:
build:
context: *brightbean-repo
command: gunicorn config.wsgi:application --bind 0.0.0.0:8000 --workers 2 --threads 4
restart: unless-stopped
expose:
- "8000"
environment:
DJANGO_SETTINGS_MODULE: ${DJANGO_SETTINGS_MODULE}
SECRET_KEY: ${SECRET_KEY}
ENCRYPTION_KEY_SALT: ${ENCRYPTION_KEY_SALT}
DATABASE_URL: ${DATABASE_URL}
ALLOWED_HOSTS: ${ALLOWED_HOSTS}
APP_URL: ${APP_URL}
STORAGE_BACKEND: ${STORAGE_BACKEND}
MEDIA_ROOT: ${MEDIA_ROOT}
SERVE_MEDIA: ${SERVE_MEDIA}
volumes:
- media_data:/app/media
depends_on:
migrate:
condition: service_completed_successfully
worker:
build:
context: *brightbean-repo
command: python manage.py process_tasks
restart: unless-stopped
environment:
DJANGO_SETTINGS_MODULE: ${DJANGO_SETTINGS_MODULE}
SECRET_KEY: ${SECRET_KEY}
ENCRYPTION_KEY_SALT: ${ENCRYPTION_KEY_SALT}
DATABASE_URL: ${DATABASE_URL}
ALLOWED_HOSTS: ${ALLOWED_HOSTS}
APP_URL: ${APP_URL}
STORAGE_BACKEND: ${STORAGE_BACKEND}
MEDIA_ROOT: ${MEDIA_ROOT}
SERVE_MEDIA: ${SERVE_MEDIA}
volumes:
- media_data:/app/media
depends_on:
migrate:
condition: service_completed_successfully
volumes:
postgres_data:
media_data:
-18
View File
@@ -1,18 +0,0 @@
{
"id": "brightbean-studio",
"name": "Brightbean Studio",
"version": "latest",
"description": "Open-source, self-hostable social media management platform: schedule, publish and manage content across 10+ platforms (Facebook, Instagram, LinkedIn, TikTok, YouTube, Pinterest, Threads, Bluesky, Mastodon, Google Business, DEV.to) from a single dashboard. Free alternative to Buffer, Sendible and SocialPilot.",
"logo": "brightbean-studio.svg",
"links": {
"github": "https://github.com/brightbeanxyz/brightbean-studio",
"website": "https://brightbean.xyz/studio/",
"docs": "https://github.com/brightbeanxyz/brightbean-studio#readme"
},
"tags": [
"social-media",
"django",
"self-hosted",
"marketing"
]
}
@@ -1,66 +0,0 @@
# Dokploy template for Brightbean Studio
# - The app is built from source at deploy time (no prebuilt image yet).
# - After first deploy, add per-platform credentials (Facebook, LinkedIn,
# TikTok, ...) in Django admin: /admin/ -> Platform credentials, or set the
# PLATFORM_* env vars on the compose service in Dokploy.
[variables]
main_domain = "${domain}"
postgres_password = "${password:32}"
secret_key = "${password:50}"
encryption_key_salt = "${password:32}"
[config]
[[config.domains]]
serviceName = "app"
port = 8000
host = "${main_domain}"
path = "/"
[config.env]
DJANGO_SETTINGS_MODULE = "config.settings.production"
SECRET_KEY = "${secret_key}"
ENCRYPTION_KEY_SALT = "${encryption_key_salt}"
POSTGRES_PASSWORD = "${postgres_password}"
DATABASE_URL = "postgres://postgres:${postgres_password}@postgres:5432/brightbean"
ALLOWED_HOSTS = "${main_domain}"
APP_URL = "https://${main_domain}"
STORAGE_BACKEND = "local"
MEDIA_ROOT = "/app/media"
SERVE_MEDIA = "true"
[[config.mounts]]
filePath = "README.md"
content = """
# Brightbean Studio (Dokploy template)
Open-source social media management: schedule, publish and manage content
across 10+ platforms from one dashboard (Buffer/Sendible alternative).
## After deploying
1. **Admin** — create your superuser once the stack is up:
`docker exec -it <app-container> python manage.py createsuperuser`
(or open https://<your-domain>/admin/ and use a first-login flow if enabled).
2. **Platform credentials** (Facebook, Instagram, LinkedIn, TikTok, YouTube,
Pinterest, Threads, Bluesky, Google Business, Mastodon, DEV.to): add them in
Django admin under *Platform credentials*, or set the `PLATFORM_*` env vars
on this compose service in Dokploy and redeploy.
3. **Media storage** — default is local disk on the `media_data` volume
(served by Django via SERVE_MEDIA=true at /media/). To move to S3, set
`STORAGE_BACKEND=s3` plus `S3_*` vars and set `SERVE_MEDIA=false`.
4. **Email** — set `EMAIL_HOST` / `EMAIL_HOST_USER` / `EMAIL_HOST_PASSWORD` /
`DEFAULT_FROM_EMAIL` if you want password resets and notifications.
5. **Google login** — set `GOOGLE_AUTH_CLIENT_ID` / `GOOGLE_AUTH_CLIENT_SECRET`
for Google sign-in.
## Notes
- The image is built from source on every deploy (takes a few minutes the
first time). The three services share the same Dockerfile, so only the
first build pays the full cost.
- `migrate` is a one-shot service: it runs Django migrations, then exits.
`app` and `worker` wait for it via `service_completed_successfully`.
- Traefik (Dokploy) handles TLS; the upstream Caddy edge is not used.
"""
+1 -1
View File
@@ -1,6 +1,6 @@
services:
opentodo:
image: ghcr.io/opentodoapp/opentodo:1.4.2
image: ghcr.io/opentodoapp/opentodo:0.19.0
restart: unless-stopped
expose:
- 8080
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "opentodo",
"name": "OpenTodo",
"version": "1.4.2",
"version": "0.19.0",
"description": "Open-source, local-first task manager. Works offline and syncs every device from one small container.",
"logo": "opentodo.svg",
"links": {
+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img"><title>OpenTodo</title><!-- OpenTodo brand mark. Part of OpenTodo, AGPL-3.0 (see LICENSE). --><rect width="64" height="64" rx="14" fill="#0f172a"/><g transform="translate(8 8) scale(2)" fill="none" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"><path d="M6 11.5 4.5 13v4.5a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V13L18 11.5" stroke="#ffffff"/><path d="m8 8 4 4 7.5-7.5" stroke="#34d399"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img"><title>OpenTodo</title><!-- OpenTodo brand mark. Part of OpenTodo, AGPL-3.0 (see LICENSE). --><rect width="64" height="64" rx="14" fill="#0f172a"/><g transform="translate(8 6) scale(2)" fill="none" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"><path d="M19.73 10.93A8 8 0 1 1 12.7 5.03" stroke="#34d399"/><path d="M8 13l3 3" stroke="#ffffff"/><path d="M11 16l9-9" stroke="#34d399"/></g></svg>

Before

Width:  |  Height:  |  Size: 480 B

After

Width:  |  Height:  |  Size: 484 B

+1 -1
View File
@@ -1,7 +1,7 @@
# the webserver can take a while to start up, so don't be alarmed if it takes a few minutes to get a response
services:
vaultwarden:
image: vaultwarden/server:1.37.5
image: vaultwarden/server:1.36.0
restart: always
environment:
DOMAIN: ${DOMAIN}
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "vaultwarden",
"name": "Vaultwarden",
"version": "1.37.5",
"version": "1.36.0",
"description": "Vaultwarden is a lightweight password manager that works with Bitwarden apps. Self-host it on your own server with Dokploy, which deploys Vaultwarden as a Docker Compose service in a few clicks.",
"logo": "vaultwarden.svg",
"links": {
+11 -22
View File
@@ -1,41 +1,30 @@
services:
zeqqat:
image: ghcr.io/zeqqat/zeqqat:${ZEQQAT_VERSION:-0.3.40}
image: ghcr.io/zeqqat/zeqqat:0.1.0
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
ZEQQAT_PUBLIC_URL: ${ZEQQAT_PUBLIC_URL:?set ZEQQAT_PUBLIC_URL}
ZEQQAT_PUBLIC_URL: ${ZEQQAT_PUBLIC_URL}
ZEQQAT_EDITION: self-hosted
DATABASE_URL: postgresql://zeqqat:${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}@postgres:5432/zeqqat
BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET:?set BETTER_AUTH_SECRET}
ZEQQAT_ENCRYPTION_KEY: ${ZEQQAT_ENCRYPTION_KEY:?set ZEQQAT_ENCRYPTION_KEY}
ENABLED_AUTH_PROVIDERS: ${ENABLED_AUTH_PROVIDERS:-password}
GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID:-}
GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET:-}
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID:-}
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET:-}
MAIL_FROM: ${MAIL_FROM:-}
RESEND_API_KEY: ${RESEND_API_KEY:-}
SMTP_URL: ${SMTP_URL:-}
# Anonymous install ping (README, "Anonymous install ping"). 0 turns it off.
ZEQQAT_TELEMETRY: ${ZEQQAT_TELEMETRY:-1}
DATABASE_URL: postgresql://zeqqat:${POSTGRES_PASSWORD}@postgres:5432/zeqqat
BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET}
ZEQQAT_ENCRYPTION_KEY: ${ZEQQAT_ENCRYPTION_KEY}
ENABLED_AUTH_PROVIDERS: ${ENABLED_AUTH_PROVIDERS}
GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID}
GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET}
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET}
expose:
- "3000"
healthcheck:
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3000/api/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
postgres:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_USER: zeqqat
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: zeqqat
volumes:
- zeqqat-postgres:/var/lib/postgresql/data
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "zeqqat",
"name": "Zeqqat",
"version": "0.3.40",
"version": "0.1.0",
"description": "Give AI agents access to your Dokploy without handing them your API key. Per-tool permissions, team roles and a full log of every call.",
"logo": "zeqqat.svg",
"links": {
+7 -5
View File
@@ -15,8 +15,10 @@ ZEQQAT_PUBLIC_URL = "https://${main_domain}"
POSTGRES_PASSWORD = "${postgres_password}"
BETTER_AUTH_SECRET = "${auth_secret}"
ZEQQAT_ENCRYPTION_KEY = "${encryption_key}"
# Sign-in is email and password, nothing to set up: the first account you
# create owns this Zeqqat. To also offer GitHub or Google, set
# ENABLED_AUTH_PROVIDERS (for example password,github) and that provider's
# client id and secret, with the callback
# https://<your domain>/api/auth/callback/github
# Sign-in: create a GitHub OAuth app with the callback URL
# https://<your domain>/api/auth/callback/github and paste its keys here.
ENABLED_AUTH_PROVIDERS = "github"
GITHUB_CLIENT_ID = ""
GITHUB_CLIENT_SECRET = ""
GOOGLE_CLIENT_ID = ""
GOOGLE_CLIENT_SECRET = ""