selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

scm-manager logo

Self-host scm-manager

3.12.2

Git, Mercurial and Subversion repository manager

ReleaseOpen SourceAGPL-3.0
Updated13 hours ago
LanguageJava
Setup difficultyModerate
Stars
184
Ports
8080 (HTTP web interface and REST API), 2222 (SSH plugin (optional))
Docker
scmmanager/scm-manager
Install with Docker
Initial administration user creation form on first startupPlugin Wizard for selecting pre-defined plugin sets

What is scm-manager?

SCM-Manager is a self-hosted source code management platform that provides a unified web interface for managing Git, Mercurial, and Subversion repositories. It features a rich web UI, full REST API, plugin system, centralized user/group/permission management, and requires no external database or web server. It can be installed via Docker, Helm, native packages (Debian, RPM, Windows), or generic Unix tarball.

Should you self-host scm-manager?

scm-manager scores 53/100 on selfhost.directory (how scoring works) and ranks #10 of 14 in Code Hosting. It has 184 GitHub stars.

It shipped 3 stable releases in the past year. The latest, 3.11.4, came out on 11 February 2026. New versions land roughly every 2 weeks.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in Java.

Its closest alternative on selfhost.directory is Gitea (89/100, 58 745 stars). It scores higher overall, so compare the two before you pick. See scm-manager vs Gitea side by side.

Features

  • CLI Client
  • Multi-repository hosting
  • No external dependencies
  • Plugin System
  • REST API
  • User and permission management
  • Web-based configuration
  • Web-based user interface

scm-manager README

How to install scm-manager

Install scm-manager with Docker

Environment variables
SCM_WEBAPP_INITIALPASSWORD, SCM_WEBAPP_INITIALUSER, SCM_CONTEXT_PATH, JAVA_OPTS

docker run --name scm -p 8080:8080 -v scm-home:/var/lib/scm scmmanager/scm-manager:

Available as alpine and debian variants for amd64, arm64, arm/v7

How to configure scm-manager

  • JAVA_OPTSJVM parameters for the SCM-Manager process

    JVM parameters for the SCM-Manager process

  • SCM_CONTEXT_PATHContext path for the web application (e.g., /scm42)

    Context path for the web application (e.g., /scm42)

  • SCM_WEBAPP_INITIALPASSWORDInitial admin password for automated setup, bypasses user creation form

    Initial admin password for automated setup, bypasses user creation form

  • SCM_WEBAPP_INITIALUSERInitial admin username for automated setup (used with SCM_WEBAPP_INITIALPASSWORD)

    Initial admin username for automated setup (used with SCM_WEBAPP_INITIALPASSWORD)

scm-manager releases & version history

FAQ

How do I install plugins?

Find the desired plugin on the plugins page and follow the installation instructions on the plugin's install page.

How do I enable trace logging?

Change the logger level for 'sonia.scm' from INFO to TRACE in logging.xml and restart SCM-Manager.

Where does SCM-Manager store its log files?

Log file location depends on the operating system and installation type, documented in the administration guide.

How can I change the SCM-Manager home directory?

There are several ways to change the base directory location, documented in the administration guide.

Where does SCM-Manager store its configuration, data and repositories?

All data is stored in the SCM-Manager base directory, whose location depends on the installation type.

More in Version Control

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…