Files
templates/blueprints/soft-serve/template.toml
Abdelatif Djeddou 3d74ad7c08 feat: add Soft Serve template (#889)
* feat: add Soft Serve template

* fix: quote Soft Serve listen addresses

---------

Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
2026-07-07 15:44:27 -06:00

63 lines
2.0 KiB
TOML

[variables]
main_domain = "${domain}"
server_name = "Soft Serve"
initial_admin_keys = ""
http_public_url = "http://${main_domain}"
ssh_public_url = "ssh://${main_domain}:23231"
log_level = "info"
[[config.domains]]
serviceName = "soft-serve"
port = 23232
host = "${main_domain}"
path = "/"
[[config.mounts]]
filePath = "README.md"
content = """# Soft Serve
This template deploys Soft Serve, a self-hosted Git server with an SSH TUI, HTTP Git access, Git LFS support, and a lightweight web endpoint.
## First Start
Set `initial_admin_keys` to one or more SSH public keys before the first deployment. Soft Serve uses this value to create the initial `admin` user. The keys are consumed during initialization, so changing this variable later does not rewrite an already initialized data volume.
Example value:
```text
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... your-name
```
## HTTP Access
The Dokploy domain routes to Soft Serve's HTTP listener:
- HTTP public URL: `http://${main_domain}`
- HTTP Git clone example: `git clone http://${main_domain}/repo.git`
Set `http_public_url` to `https://${main_domain}` before deploying if your Dokploy domain enforces TLS.
Private HTTP access uses tokens created through the SSH admin interface.
## SSH and Git Protocol Ports
Soft Serve also listens inside the deployment on:
- SSH/TUI: `23231`
- Stats: `23233`
- Git protocol: `9418`
This template does not publish host TCP ports directly. Expose the SSH or Git protocol ports separately in Dokploy if you need direct terminal/TUI access, then use the configured `ssh_public_url` for clone commands.
## Storage
Repositories, configuration, keys, and the default SQLite database are stored in the persistent `soft-serve-data` volume mounted at `/soft-serve`.
"""
[config.env]
SOFT_SERVE_NAME = "${server_name}"
SOFT_SERVE_INITIAL_ADMIN_KEYS = "${initial_admin_keys}"
SOFT_SERVE_HTTP_PUBLIC_URL = "${http_public_url}"
SOFT_SERVE_SSH_PUBLIC_URL = "${ssh_public_url}"
SOFT_SERVE_LOG_LEVEL = "${log_level}"