You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Installs the self-hosted sync server for Hammer, the offline-first story/novel writing app (Kotlin/Ktor). It lets you sync Hammer projects across your own devices instead of Dropbox/third parties. The server has no UI of its own — install the Hammer desktop/mobile client separately and point it at http://<IP>:8080.
Deployment: uses the upstream prebuilt server.zip release asset (Gradle installDist) — no source build required. Runs on Temurin JDK 21 via /opt/hammer/bin/server.
Storage: in-process (embedded) PostgreSQL 18 — no external DB. Data in /opt/hammer_data (survives updates, via -Duser.home).
arm64: the embedded PostgreSQL binaries include linux-arm64v8, so arm64 is supported.
Note: plain HTTP on :8080; put behind a TLS reverse proxy for internet access.
This is the SYNC SERVER only, not the Hammer editor. Install the Hammer client (desktop/mobile) separately and create your account from there - the first account created becomes the admin account. http://:8080 serves the public web pages (/setup, /admin); /api is the sync endpoint and returns an error in a browser because it requires the client's protocol-version header.
Hammer clients only speak https and will NOT connect to plain HTTP, so the default http://:8080 works in a browser but not from the app. Put a TLS reverse proxy in front of it, or give Hammer a real certificate via sslPort/[sslCert] in /opt/hammer_data/config.toml. Self-signed certificates are rejected by the clients.
Sync data is stored in an embedded PostgreSQL under /opt/hammer_data (kept outside the app directory so it survives updates). Include /opt/hammer_data in regular backups.
Settings live in /opt/hammer_data/config.toml, which the server auto-loads from its data directory. It ships pre-filled with the container IP plus commented examples for reverse proxy, TLS, external PostgreSQL and caching. Apply changes with 'systemctl restart hammer'.
Note: This is not in the official repo yet—it's just a dev version! After merging into ProxmoxVE, it will need to be recreated.
Activity
TJohansen commentedon Aug 15, 2026
Deployed successfully and exposed via Netbird reverse proxy with no issue. Initial testing seems to indicate everything is working well.
yorkshirelandscape commentedon Sep 6, 2026
The website listed for this app is wrong. It should be https://hammer.ink
github-actions commentedon Sep 7, 2026
The Hammer script is ready for testing:
This is the SYNC SERVER only, not the Hammer editor. Install the Hammer client (desktop/mobile) separately and create your account from there - the first account created becomes the admin account. http://:8080 serves the public web pages (/setup, /admin); /api is the sync endpoint and returns an error in a browser because it requires the client's protocol-version header.
Hammer clients only speak https and will NOT connect to plain HTTP, so the default http://:8080 works in a browser but not from the app. Put a TLS reverse proxy in front of it, or give Hammer a real certificate via sslPort/[sslCert] in /opt/hammer_data/config.toml. Self-signed certificates are rejected by the clients.
Sync data is stored in an embedded PostgreSQL under /opt/hammer_data (kept outside the app directory so it survives updates). Include /opt/hammer_data in regular backups.
Settings live in /opt/hammer_data/config.toml, which the server auto-loads from its data directory. It ships pre-filled with the container IP plus commented examples for reverse proxy, TLS, external PostgreSQL and caching. Apply changes with 'systemctl restart hammer'.
Note: This is not in the official repo yet—it's just a dev version! After merging into ProxmoxVE, it will need to be recreated.
Discord testing thread: https://discord.com/channels/1302816934508630047/1546509574356607057
github-actions commentedon Sep 11, 2026
A PR has been created for hammer: community-scripts/ProxmoxVE#17189
MickLesk commentedon Sep 12, 2026
Merged with #17189 in ProxmoxVE