This document covers the installation steps common to all sr.ht services.
sr.ht is a distributed system in which each service (e.g., git.sr.ht, builds.sr.ht) runs independently with its own database and resources, communicates with other services through their respective APIs and webhooks, and is highly tolerant to the temporary or permanent absence of its peers. This type of design allows you to choose and deploy any subset of services depending on your needs, making it ideal for both large-scale deployments and small-scale installations.
However, being distributed also means that the installation and deployment process can become a bit more involving. In particular, many sr.ht services have their own, unique requirements that necessitate extra installation steps. As such, be sure to consult each service's installation page for more details:
If you are a sr.ht system administrator, we encourage you to subscribe to the sr.ht-admins mailing list, a low-volume list of sysadmin-oriented announcements regarding breaking changes, security vulnerabilities, and so on.
Most sr.ht services require the following:
A PostgreSQL server — persistent storage
A Redis server — ephemeral storage, caching, work distribution
A mail server — incoming/outgoing mail
A cron daemon — scheduled tasks
Add the appropriate SourceHut package repository to your package manager.
Install your sr.ht services!
After installing your sr.ht services, you'll need to configure them. For more information, see the Configuration page.