Hammer
This installs the self-hosted sync server for Hammer, the offline-first story/novel writing app. The Kotlin/Ktor server lets you sync your Hammer projects across your own devices instead of using Dropbox or a third-party service. It ships with an in-process (embedded) PostgreSQL, so no external database is required. The server has no UI of its own - install the Hammer desktop/mobile client separately and point it at this server.
Hammer
Installation
Default install:
1
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/hammer.sh)"
Notes
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://[IP]: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://[IP]: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'.