mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-08 15:35:24 +02:00
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>
This commit is contained in:
committed by
GitHub
parent
d1cc00391e
commit
3d74ad7c08
27
blueprints/soft-serve/docker-compose.yml
Normal file
27
blueprints/soft-serve/docker-compose.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
soft-serve:
|
||||
image: charmcli/soft-serve:v0.11.6
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- "23231"
|
||||
- "23232"
|
||||
- "23233"
|
||||
- "9418"
|
||||
environment:
|
||||
SOFT_SERVE_NAME: ${SOFT_SERVE_NAME}
|
||||
SOFT_SERVE_DATA_PATH: /soft-serve
|
||||
SOFT_SERVE_INITIAL_ADMIN_KEYS: ${SOFT_SERVE_INITIAL_ADMIN_KEYS}
|
||||
SOFT_SERVE_SSH_LISTEN_ADDR: ":23231"
|
||||
SOFT_SERVE_SSH_PUBLIC_URL: ${SOFT_SERVE_SSH_PUBLIC_URL}
|
||||
SOFT_SERVE_HTTP_LISTEN_ADDR: ":23232"
|
||||
SOFT_SERVE_HTTP_PUBLIC_URL: ${SOFT_SERVE_HTTP_PUBLIC_URL}
|
||||
SOFT_SERVE_GIT_LISTEN_ADDR: ":9418"
|
||||
SOFT_SERVE_STATS_LISTEN_ADDR: ":23233"
|
||||
SOFT_SERVE_LOG_LEVEL: ${SOFT_SERVE_LOG_LEVEL}
|
||||
volumes:
|
||||
- soft-serve-data:/soft-serve
|
||||
|
||||
volumes:
|
||||
soft-serve-data:
|
||||
10
blueprints/soft-serve/soft-serve.svg
Normal file
10
blueprints/soft-serve/soft-serve.svg
Normal file
@@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="Soft Serve">
|
||||
<rect width="128" height="128" rx="24" fill="#ff6fb1"/>
|
||||
<path fill="#331a2a" d="M36 47h56l-11 68H47L36 47Z"/>
|
||||
<path fill="#ffd166" d="M42 47h44L77 108H51L42 47Z"/>
|
||||
<path fill="#fff7f0" d="M34 48c0-12 10-22 22-22h16c12 0 22 10 22 22v2H34v-2Z"/>
|
||||
<path fill="#74d3ae" d="M45 51h38l-4 12H49l-4-12Z"/>
|
||||
<circle cx="50" cy="39" r="4" fill="#ff6fb1"/>
|
||||
<circle cx="64" cy="34" r="4" fill="#4cc9f0"/>
|
||||
<circle cx="78" cy="39" r="4" fill="#ffd166"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 559 B |
62
blueprints/soft-serve/template.toml
Normal file
62
blueprints/soft-serve/template.toml
Normal file
@@ -0,0 +1,62 @@
|
||||
[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}"
|
||||
18
meta.json
18
meta.json
@@ -6410,6 +6410,24 @@
|
||||
"self-hosted"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "soft-serve",
|
||||
"name": "Soft Serve",
|
||||
"version": "v0.11.6",
|
||||
"description": "Soft Serve is a self-hosted Git server with an SSH TUI, HTTP Git access, Git LFS support, and simple repository management.",
|
||||
"logo": "soft-serve.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/charmbracelet/soft-serve",
|
||||
"website": "https://charm.sh/",
|
||||
"docs": "https://github.com/charmbracelet/soft-serve/blob/main/README.md"
|
||||
},
|
||||
"tags": [
|
||||
"git",
|
||||
"ssh",
|
||||
"developer-tools",
|
||||
"self-hosted"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "soketi",
|
||||
"name": "Soketi",
|
||||
|
||||
Reference in New Issue
Block a user