No description
  • JavaScript 46.4%
  • Python 26.7%
  • CSS 14.9%
  • HTML 9.4%
  • Shell 2.4%
  • Other 0.2%
Find a file
Ivo Oskamp 135fb9c7a4 Restructure onto shared-integrations/tooling standard
Align the self-hosted webssh fork to the shared stack, build and documentation
conventions.

- Move the application under containers/webssh/ (one image per containers/<service>/),
  preserving history via git mv.
- Replace the root compose with a convention-compliant stack/ (Forgejo image,
  ${ENV}-first naming, bind-mount /docker/appdata/${ENV}-webssh/data, fail-fast
  vars, no env_file; APP_PORT 8130 -> internal 5000).
- Add the shared build-and-push.sh plus the build-version wrapper (build.sh +
  scripts/) and containers/webssh/app/version.py; surface display_version() in the
  login footer, a /version endpoint and an in-app /changelog page (changelog.py).
- Add the documentation set: docs/{changelog-develop,changelog,TECHNICAL,DESIGN}.md
  and a root CLAUDE.md; rewrite README.md as a short front door.
- Strip upstream marketing/community files (CONTRIBUTING, CODE_OF_CONDUCT,
  SECURITY, .github, assets, .env.example, docs screenshots/gifs).

Database stays SQLite (no Postgres/Adminer) as a deliberate deviation, documented
in docs/TECHNICAL.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 21:27:10 +02:00
containers/webssh Restructure onto shared-integrations/tooling standard 2026-06-28 21:27:10 +02:00
docs Restructure onto shared-integrations/tooling standard 2026-06-28 21:27:10 +02:00
scripts Restructure onto shared-integrations/tooling standard 2026-06-28 21:27:10 +02:00
stack Restructure onto shared-integrations/tooling standard 2026-06-28 21:27:10 +02:00
.gitignore Restructure onto shared-integrations/tooling standard 2026-06-28 21:27:10 +02:00
build-and-push.sh Restructure onto shared-integrations/tooling standard 2026-06-28 21:27:10 +02:00
build.sh Restructure onto shared-integrations/tooling standard 2026-06-28 21:27:10 +02:00
CLAUDE.md Restructure onto shared-integrations/tooling standard 2026-06-28 21:27:10 +02:00
LICENSE Create LICENSE 2026-01-24 17:39:11 +01:00
README.md Restructure onto shared-integrations/tooling standard 2026-06-28 21:27:10 +02:00

webssh

A self-hosted, web-based SSH terminal with an integrated SFTP file manager. Multi-user, with per-user accounts, SSH keys, connection profiles and settings — a browser terminal (xterm.js) backed by server-side SSH/SFTP (paramiko).

Self-hosted fork, aligned to the shared shared-integrations/tooling standard (stack / build / documentation conventions).

Quick start

Deployed with Portainer from the stack/ directory. Portainer injects the environment and holds the real values per stack.

  • Stack: stack/docker-compose.yml + stack/stack.env
  • Image: forgejo.oskamp.info/ivooskamp/webssh:${IMAGE_TAG}
  • App is published on APP_PORT (default 8130), proxied to internal 5000.
  • Persistent data (SQLite DB, SSH keys, profiles, logs) bind-mounts at /docker/appdata/${ENV}-webssh/data.

Build & release

./build.sh t        # dev: bump build number, push :dev, push dev branch
./build.sh r        # release: validate version, push :vX.Y.Z/:dev/:latest, tag main

The release version comes from the top heading of docs/changelog.md. Building from this host needs a prior docker login forgejo.oskamp.info.

Documentation

The application also serves an in-app changelog at /changelog and reports its build via /version.

License

MIT — see LICENSE.