Sign inSign up

ellermister/mssh-server

By ellermister

β€’Updated about 20 hours ago

Image
0

1.5K

ellermister/mssh-server repository overview

⁠MSSH Server

Headless Web UI for MSSH⁠: browser SSH/SFTP client plus catalog Sync API. This is the Linux cmd/server binary packaged as ellermister/mssh-server.

The database is SQLCipher-encrypted. GOSSH_DB_KEY is required on every start; losing the key means losing the data.

Image env defaults: GOSSH_LISTEN=0.0.0.0:8022, GOSSH_DB=/data/myssh.db.

⁠Docker

docker run --rm -p 8022:8022 \
  -e GOSSH_DB_KEY='your-db-key' \
  -v mssh-data:/data \
  ellermister/mssh-server:latest

Open http://<host>:8022. Browser login password defaults to the same value as GOSSH_DB_KEY unless you set GOSSH_UI_PASSWORD.

Named volume mssh-data is mounted at /data (encrypted SQLite). Keep the same key when you recreate the container.

⁠Unraid / bind mount
docker run -d --name mssh-server --restart unless-stopped \
  -p 8022:8022 \
  -e GOSSH_DB_KEY='your-db-key' \
  -v /mnt/user/appdata/mssh-server:/data \
  ellermister/mssh-server:latest
⁠Optional: separate UI password, TLS, disable Sync API
docker run -d --name mssh-server --restart unless-stopped \
  -p 8022:8022 \
  -e GOSSH_DB_KEY='your-db-key' \
  -e GOSSH_UI_PASSWORD='browser-login' \
  -v mssh-data:/data \
  ellermister/mssh-server:latest

TLS (PEM files must be visible inside the container):

docker run -d --name mssh-server --restart unless-stopped \
  -p 8022:8022 \
  -e GOSSH_DB_KEY='your-db-key' \
  -v mssh-data:/data \
  -v /path/to/certs:/certs:ro \
  ellermister/mssh-server:latest \
  -cert /certs/server.crt -cert-key /certs/server.key

⁠Environment variables

Flags override env when both are set.

EnvFlagDefault (image)Meaning
GOSSH_DB_KEY-key(required)Database encryption key
GOSSH_LISTEN-listen0.0.0.0:8022Bind address
GOSSH_DB-db/data/myssh.dbSQLite path
GOSSH_UI_PASSWORD-ui-passwordempty β†’ use keyBrowser login password
GOSSH_TLS_CERT-certemptyTLS certificate PEM
GOSSH_TLS_KEY-cert-keyemptyTLS private key PEM

⁠Command-line flags

Usage of server:
  -cert string
        TLS certificate PEM file
  -cert-key string
        TLS private key PEM file
  -db string
        SQLite database path (image default /data/myssh.db)
  -key string
        database encryption key (required)
  -listen string
        listen address host:port (default "0.0.0.0:8022")
  -sync-api
        enable catalog Sync API on this port (access token); a separate
        sync port can still be started from the Web UI (default true)
  -ui-password string
        browser login password (defaults to --key if empty)

-sync-api=false turns off /api/v1/sync/* on this port. You can still start a dedicated sync listener in Settings β†’ Sync Server. MCP (POST /api/v1/mcp) is mounted on the same HTTP server as Sync when that listener is up.

⁠Bare binary

./mssh-server-linux-amd64 --listen 0.0.0.0:8022 --key 'your-db-key'

Without GOSSH_DB, the database is ~/.myssh/myssh.db.

Tag summary

Content type

Image

Digest

sha256:fcceab35d…

Size

36.7 MB

Last updated

2 months ago

docker pull ellermister/mssh-server