Help us shape the future of Go! Take the 2026 Go Developer Survey

gitsss

command module
v1.16.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 23, 2026 License: MIT Imports: 13 Imported by: 0

README

GitSSS

GitSSS SSS / Git mark

GitSSS is an organization-first Git collaboration platform for enterprise private networks. It includes Git hosting, issues, pull requests, Actions, packages, releases, wiki, and Git LFS.

简体中文 · HTML manual · Enterprise operations · License

The activity workspace below shows a demonstration instance captured on 2026-10-18; no production repository data is included.

GitSSS home page

Public entrance, isolated desktop demonstration captured on 2026-10-18:

GitSSS entrance

Highlights

  • Per-channel policies and native email cards, complete multiline messages with provider-aware pagination, DIY JSON templates and stable per-repository Feishu colors.

  • A distinct GitSSS entrance with a local shader visual, gray documentation comments, and configurable Google/Feishu/WeChat account binding.

  • Global Ctrl+K / ⌘K search, localized date/time pickers, commit-linked Actions trackId and sandboxed per-file HTML preview.

  • Readable activity cards with account remarks, separate branch/message fields, and exact local timestamps plus weekday and live relative time.

  • Full-width activity calendars with 7/30-day summaries, active-day/peak totals and editable color/count ranges.

  • Up to 25 custom repository tags, including Chinese; repository and global search match tags.

  • Git over HTTP(S), SSH, and Git LFS.

  • Issues, pull requests, reviews, releases, wiki, packages, and Actions.

  • An embedded Actions runner, repository file editing, and a compact three-column activity workspace.

  • Gitea-compatible HTTP import for accounts, organizations, permissions, repositories, and supported collaboration data.

  • Run GitSSS on 5030 beside Gitea on 3000 during evaluation. After an approved cutover, GitSSS can also listen on 3000.

  • Sign-in required and self-registration disabled by default; organizations appear first on the home page.

  • Editable team display names, independent of stable team identities and permissions.

  • Organization identifiers and editable notes displayed together, searchable by either.

  • One complete desktop interface for repository workflows, with readable administration and no classic/new page switch.

  • Visible contribution heatmaps with team filtering, and a readable 15px administration overview of volume capacity, usage and measured Git/LFS bytes.

  • A consistent organization workspace with searchable organization/team menus and in-place team filtering.

  • Repository boards stay inside one Git repository. User boards (/{username}/-/projects) and organization boards (/{org}/-/projects) collect issues from repositories that account owns, with custom columns, fields, and drag-and-drop. Adding owner/repo#123 keeps the issue on its repository board. /{org}/-/kanban is the separate quick-task board.

  • Organization intranet share sits after Worktime. Members drag files or folders, share text, copy links, and delete. Each organization defaults to 100 GB, which a site admin can change. Uploads are refused before they start when the quota or the real free disk space, minus a safety reserve, is too small. New files expire after 30 days unless marked permanent. Web and gitsss admin org-share both upload and download in parallel chunks, with resume and HTTP Range. Bytes stay outside Git and LFS. See intranet share.

  • Automatic system/browser language, readable desktop themes, and 30 built-in avatars with automatic crop/compression for custom uploads.

  • Repository HTML Docs and eight native notification channels, with isolated rendering, routing policies and provider failure detection.

  • Avatar style tabs, username initials and globally unique primary-email editing.

  • Compact desktop layouts, a separate Organization links tab, and automatic repository team assignment using organization-owned regex rules.

  • Native Express233 upload from Actions, with streamed uploads and optional publication.

Repository overview

Kanban

Organization intranet share

Compact organization member table

Native binary installation

Download the matching OS/architecture binary and its .sha256 from Releases. Verify the checksum before execution. Linux, macOS and Windows binaries run without Docker. Install Git and Git LFS; Node.js is required for JavaScript Actions.

chmod +x ./gitsss
./gitsss web --work-path /absolute/path/to/gitsss-data

On Windows use gitsss.exe web --work-path C:\gitsss-data. Open port 5030 and complete the installation form with an administrator password. An existing installation keeps its configuration. The defaults below for a data volume and factory account apply to the Docker installer.

Docker requirements

  • Docker Engine, Docker Desktop, or an OCI-compatible docker compose runtime. The included vbox runner can be used without Docker Desktop.
  • An offline image archive such as gitsss-image.tar, or a locally loaded image.
  • Git and Git LFS on the machine that runs the HTTP importer.
  • PowerShell 5.1+ on Windows, or Bash on Linux/macOS.

The installer loads local image archives with --pull never; it does not pull an image from a registry.

Defaults

Setting Default
Listen address 0.0.0.0
Self-registration Disabled
Anonymous browsing Disabled
Web port 5030
SSH port 2222
Root URL http://localhost:5030/
Initial administrator root
Initial password root
Data volume gitsss-data

The initial account is created only for an empty data volume and must change its password at first login. Existing HTTP_PORT configuration is retained during upgrades.

Install

Linux / macOS
./install/install.sh \
  --image-archive ./gitsss-image.tar \
  --install-dir /opt/gitsss \
  --port 5030 \
  --root-url http://git.example.internal:5030/ \
  --initial-admin-user root \
  --initial-admin-password 'change-this-password'

The installer can configure a systemd service on Linux or a per-user launchd agent on macOS. Use --no-autostart to skip service registration or --no-start to stage the installation without starting it.

Windows PowerShell
.\install\install.ps1 `
  -ImageArchive .\gitsss-image.tar `
  -InstallDir C:\gitsss `
  -Port 5030 `
  -RootUrl http://git.example.internal:5030/ `
  -InitialAdminUser root `
  -InitialAdminPassword 'change-this-password'

Gitea migration rehearsal

Keep the source Gitea running. First perform a dry run, review the JSON plan, and import a small repository set into a separate GitSSS data directory. The importer uses Gitea HTTP APIs and Git HTTP; it does not need source filesystem or Docker-volume access.

Store secrets in protected files, not in command arguments or shell history:

chmod 600 source.password target.password

gitsss import-gitea-http \
  --source-url http://gitea.example.internal:3000 \
  --source-user site-admin \
  --source-password-file source.password \
  --target-url http://gitsss.example.internal:5030 \
  --target-user root \
  --target-password-file target.password \
  --repo team/repository-a \
  --repo team/repository-b

Omit --apply for the read-only dry run. Add --apply --credentials-file imported-users.jsonl to perform the initial import and write temporary passwords for newly created accounts to an exclusive mode-0600 file.

After the initial import, Git branches, tags, notes, and Git LFS objects can be refreshed without recreating the repositories:

gitsss import-gitea-http \
  --source-url http://gitea.example.internal:3000 \
  --source-user site-admin \
  --source-password-file source.password \
  --target-url http://gitsss.example.internal:5030 \
  --target-user root \
  --target-password-file target.password \
  --repo team/repository-a \
  --repo team/repository-b \
  --sync-existing-git --apply

Incremental sync uses a persistent bare Git cache (by default under the current user's cache directory) so later runs fetch only new objects. It applies source ref deletions and fast-forward updates atomically. A divergent target ref fails safely rather than being force-overwritten. This mode syncs Git refs and LFS objects; it does not continuously sync issues, pull requests, packages, or other repository metadata. See the migration manual for scope and acceptance checks.

Two-port evaluation

Run GitSSS on 5030 alongside the existing Gitea on 3000 during evaluation. Wait for the operator's explicit cutover instruction. Preserving existing credentials, Actions history and all metadata requires a stopped native database/data takeover using the original storage paths; the HTTP pilot alone is insufficient. See the cutover procedure. After native acceptance and Gitea releases 3000, add it from Admin → Gitea takeover or POST /api/v1/admin/listen-port/alias with {"port":"3000"}. Both ports serve the same accepted data, and the public root URL becomes 3000. Operating-system SSH credentials and port 22 stay unchanged.

For Docker deployments, publish the additional host/container port and recreate the container before adding the alias. The listener change itself is live for native installs and containers that already publish both ports.

Documentation

Development

Run task help to list development targets. Common checks include task fmt, task lint:go, task lint:js, task test:go, and task test:js. Do not add GitHub Actions workflows; this repository does not use GitHub Actions as a release gate.

The offline HTML manual is bundled at /help/ (English default). Native Actions runners require Git, Git LFS and Node.js. Operator commands: tools/verify-git.py, tools/agent-ops.py, and tools/rehearse-native.py; use --help for their inputs.

Readable administration with volume and Git/LFS measurements

HTML Docs and avatar styles, captured from an isolated demonstration instance on 2026-10-17.

Repository HTML Docs

Avatar styles

Organization workspace and centers

  • One desktop navigation rail, organization-first landing, global search and keyboard access.
  • A tree-based organization software center: 100 GiB default quota, drag-and-drop files/folders, resumable uploads, batch ZIP downloads, moves, search and content deduplication.
  • Native Docker/OCI registry using existing package permissions and storage.
  • Per-repository daily, weekly and monthly contribution reports with CSV export and explicit counting rules.

Desktop center screenshots from the isolated demonstration instance, captured on 2026-10-18.

Organization software center

Repository contribution report

See the centers manual and compatibility report.

Public HTTPS deployments include adaptive login verification, bounded HTTP password and MFA attempts, and trusted proxy parsing without permanent shared-IP bans. See public access and rollback.

Software center transfers support file/folder pickers, drag-and-drop, nested directories, atomic moves and batch deletion. Uploads and downloads share one transfer panel with progress, speed, pause, resume, cancel and retry. Browser-local IndexedDB caches sources and received 8 MiB ranges for automatic refresh/restart recovery in the same profile, account and origin. Completed downloads are saved from the panel; confirm saving to release their cache. Browser quotas and eviction can limit recovery. Virtual ZIP64 batches create no extra archive on the server. Read the transfer API, cache limits and rollback contract.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
actions
build
openapi3gen
Package openapi3gen converts Gitea's Swagger 2.0 spec to an OpenAPI 3.0 spec.
Package openapi3gen converts Gitea's Swagger 2.0 spec to an OpenAPI 3.0 spec.
cmd
Package cmd provides subcommands to the gitea binary - such as "web" or "admin".
Package cmd provides subcommands to the gitea binary - such as "web" or "admin".
gitsss-hook command
contrib
backport command
Package docs bundles the offline product manual.
Package docs bundles the offline product manual.
db
git
modules
activityreport
Package activityreport summarizes commit timestamps for day, week, and month views.
Package activityreport summarizes commit timestamps for day, week, and month views.
announcement
Package announcement stores site-wide notices shown after sign-in.
Package announcement stores site-wide notices shown after sign-in.
csv
git
giteahttpmigration
Package giteahttpmigration migrates selected Git repositories and their account/RBAC data through HTTP only.
Package giteahttpmigration migrates selected Git repositories and their account/RBAC data through HTTP only.
homelinks
Package homelinks stores shared and personal dashboard shortcuts in app state.
Package homelinks stores shared and personal dashboard shortcuts in app state.
hookrelay
Package hookrelay runs the existing hook API without initializing the web application.
Package hookrelay runs the existing hook API without initializing the web application.
lfs
lfsgc
Package lfsgc plans LFS metadata garbage collection without moving object paths.
Package lfsgc plans LFS metadata garbage collection without moving object paths.
listenport
Package listenport plans a live HTTP port change without moving Git data.
Package listenport plans a live HTTP port change without moving Git data.
log
Package log provides logging capabilities for Gitea.
Package log provides logging capabilities for Gitea.
orgshare
Package orgshare plans organization file sharing without touching Git or LFS paths.
Package orgshare plans organization file sharing without touching Git or LFS paths.
projectboard
Package projectboard parses references used by user and organization boards.
Package projectboard parses references used by user and organization boards.
queue
Package queue implements a specialized concurrent queue system for Gitea.
Package queue implements a specialized concurrent queue system for Gitea.
receiveflow
Package receiveflow overlaps validation while preserving native Git ref transactions.
Package receiveflow overlaps validation while preserving native Git ref transactions.
repolayout
Package repolayout records the on-disk contract for Git repository data.
Package repolayout records the on-disk contract for Git repository data.
ssh
svg
updatechecker
Package updatechecker finds newer gitsss releases and verifies downloaded packages.
Package updatechecker finds newer gitsss releases and verifies downloaded packages.
uri
web
zstd
Package zstd provides a high-level API for reading and writing zstd-compressed data.
Package zstd provides a high-level API for reading and writing zstd-compressed data.
packages
migration-sdk module
api/v1
Package v1 Gitea API
Package v1 Gitea API
private
Package private contains all internal routes.
Package private contains all internal routes.
web
runner module
services
contexttest
Package contexttest provides utilities for testing Web/API contexts with models.
Package contexttest provides utilities for testing Web/API contexts with models.
git
lfs
org
softwarecenter
Package softwarecenter implements a single-writer organization file share outside Git/LFS.
Package softwarecenter implements a single-writer organization file share outside Git/LFS.
gitsss-vet module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL