[Enhancement]: One-click Service for Psono (with optional FileServer + Favicon server) #6663
Ryvix
started this conversation in
Service Template Requests
Replies: 1 comment
-
Hi, We cannot run or edit config files before the deployment :) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Request Type
New Service
Description
Please add Psono CE (self-hosted password manager) as a first-class Service in Coolify, with an opinionated, one-click setup. Ideally, the Service would include a guided init (key generation + DB migration) and optional sub-components:
psono/psono-combo
)psono/psono-fileserver
)esaqa/favicon
)This would make Psono as easy to deploy as other one-click apps in Coolify while preserving best practices for secrets, health checks, domains, and persistence.
Motivation
Psono is a solid, open-source, self-hosted password manager with shared vaults, WebUI, and strong crypto. It’s very close to being “one-click ready,” but today users must:
manage.py generateserverkeys
),manage.py migrate
once,All of this maps perfectly to Coolify’s Service model (ephemeral init steps, masked env vars, optional sub-services, and Traefik routing).
Proposed UX (high level)
Wizard: “Psono Setup”
Step 1: Run ephemeral container for
python3 ./psono/manage.py generateserverkeys
and capture output into masked env vars:PSONO_SECRET_KEY
,PSONO_PRIVATE_KEY
(64-hex),PSONO_PUBLIC_KEY
(64-hex),PSONO_ACTIVATION_LINK_SECRET
,PSONO_DB_SECRET
,PSONO_EMAIL_SECRET_SALT
Step 2: Choose Database
Step 3: Domain
psono.example.com
).Option toggles: Enable FileServer at
/fileserver
and Enable Favicon at/favicon
(or alternative: separate subdomains).Step 4: Run one-shot migrations.
Step 5: Start app, show health.
Optional components
/fileserver
with itssettings.yaml
generated fromfsclustershowconfig
(wizard runsfsclustercreate
,fsshardcreate
,fsshardlink
, then prints config for the fileserver container)./favicon
with a middleware rewrite to/v1/icon/…
.Implementation sketch (Compose-style)
Services:
db
(Postgres),migrate
(ephemeral),psono
(combo),fileserver
(optional),favicon
(optional)Health checks:
GET /server/healthcheck/
→ 200GET /v1/healthcheck/
→ 200GET /info/
→ 200Routing (single domain):
/server/*
and/
→psono
(combo image serves web + API)/fileserver/*
→fileserver
/favicon/*
→favicon
withReplacePathRegex ^/favicon/(.*) → /v1/icon/$1
Persistence:
psono-db
(Postgres),psono-shard
(fileserver chunks),psono-favicon
(cache)Init:
exclude_from_hc
,restart: "no"
)Required env vars (server)
Required files / config (fileserver)
A generated
settings.yaml
placed at/root/.psono_fileserver/settings.yaml
(this is the mapped volume path inside the fileserver container and as per their docs) that includes:SECRET_KEY
,PRIVATE_KEY
,PUBLIC_KEY
SERVER_URL
,SERVER_PUBLIC_KEY
CLUSTER_ID
,CLUSTER_PRIVATE_KEY
SHARDS
(default local engine:/opt/psono-shard/<id>
)HOST_URL
(e.g.,https://psono.example.com/fileserver
)Nice-to-haves
net.core.somaxconn
) via Custom Docker Options.References
Beta Was this translation helpful? Give feedback.
All reactions