Add Coworkee - #1036
Open
fgilde wants to merge 2 commits into
Open
Conversation
added 2 commits
September 1, 2026 15:37
Self-hosted HR software for one company, with its own PostgreSQL on an app-local network. Published on 3020, data under /DATA/AppData/$AppID. AUTH_SECRET is a placeholder the before_install tip asks the user to replace; the first visit opens a setup wizard, so there is no default account.
A password every install shares is one a scanner flags and an attacker already knows. The values are still in a public file, and the before_install tip still asks the user to replace them.
|
| protocol: tcp | ||
| environment: | ||
| TZ: $TZ | ||
| DATABASE_URL: postgresql://coworkee:h60b0ge0fnx6xq15r5bh@coworkee-db:5432/coworkee?schema=public |
| environment: | ||
| TZ: $TZ | ||
| DATABASE_URL: postgresql://coworkee:h60b0ge0fnx6xq15r5bh@coworkee-db:5432/coworkee?schema=public | ||
| AUTH_SECRET: rgigzydsod3iwts9b1y9751a4d5fwv4y |
| restart: unless-stopped | ||
| environment: | ||
| POSTGRES_USER: coworkee | ||
| POSTGRES_PASSWORD: h60b0ge0fnx6xq15r5bh |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




New app: Coworkee
What it is: self-hosted HR software for one company, in the spirit of Personio or HR-Works, with
its own PostgreSQL in the same app. Employees with a searchable directory, profiles and an org chart;
absence with leave balances and a request-and-approval workflow; time tracking; documents in
access-controlled storage; onboarding checklists; performance goals and reviews; an HR analytics
dashboard; a recruiting pipeline; and a news feed with in-app notifications. Role-based access
(ADMIN, HR, MANAGER, EMPLOYEE), light and dark mode, an audit log for every HR write action, and the
whole interface in English and German.
ghcr.io/fgilde/coworkeenextjs(GHCR, public)What is in the PR
Apps/Coworkee/docker-compose.yml3020→ container3000, pluspostgres:16-alpineon acoworkee-network, data under/DATA/AppData/$AppID/{storage,db}icon.pngthumbnail.png,screenshot-1..3.pngMetadata:
id: org.gilde.coworkee,main: coworkee, category Productivity,index: /,port_map: "3020", architecturesamd64,version: 1.1.2,title,taglineanddescriptioninen_USandde_DE, atips.before_install, andwebsite/repo/support/docs.No default account, and the secret is a placeholder
AUTH_SECRETsigns the login sessions, and the database has a password. Both are values generatedfor this package rather than words every install would share, and the
before_installtip asks theuser to replace
AUTH_SECRET(openssl rand -base64 32).DEMOisempty, so the first visit opens a setup wizard that creates the administrator — there is no default
login. No host paths, no socket, no privileged mode.
Validation
docker compose config -qon the app: clean../scripts/build_dist.shagainst a source tree with this app: builds, andindex.jsongainsorg.gilde.coworkeewith the expected title, tagline, category, architectures, icon, thumbnail andversion;
apps/org.gilde.coworkee/hasdocker-compose.amd64.yml,meta.jsonandmeta.de_DE.json.postgres:16-alpinewere started together with this environment and network: theschema is created on first start (49 tables), the app answers on the published port and shows the
setup page rather than a login with default credentials, and a restart keeps the database.
Architecture
amd64only, andarchitecturessays so.About the SonarCloud check
SonarCloud marks the credential in the compose file as a hardcoded secret. It is right that the
value is in a public file, and there is no way around that here: CasaOS has no generator for install
time, and the app needs the value to start with a login rather than without one. The apps already in
this store solve it the same way (ArchiveBox ships
ADMIN_PASSWORD=casaos, Docmost a literalPOSTGRES_PASSWORDandAPP_SECRET). Thebefore_installtip asks the user to replace it, and thefield is editable in the install dialog. Happy to change the approach if you would rather have it
some other way.