[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 migrateonce,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 generateserverkeysand 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_SALTStep 2: Choose Database
Step 3: Domain
psono.example.com).Option toggles: Enable FileServer at
/fileserverand Enable Favicon at/favicon(or alternative: separate subdomains).Step 4: Run one-shot migrations.
Step 5: Start app, show health.
Optional components
/fileserverwith itssettings.yamlgenerated fromfsclustershowconfig(wizard runsfsclustercreate,fsshardcreate,fsshardlink, then prints config for the fileserver container)./faviconwith 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/*→faviconwithReplacePathRegex ^/favicon/(.*) → /v1/icon/$1Persistence:
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.yamlplaced 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_KEYSERVER_URL,SERVER_PUBLIC_KEYCLUSTER_ID,CLUSTER_PRIVATE_KEYSHARDS(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