This document provides information for those interested in hacking on or contributing to SourceHut.

#Installation

Here are some tips to expedite the installation procedure:

  • A PostgreSQL database and Redis server are always required.
  • Some services require (or may optionally make use of) an S3-compatible storage backend. Minio is recommended for this purpose.
  • Generally, you can skip the webhooks daemons unless you need them.
  • Always prefer package installations for obtaining dependencies.
  • You can usually get away without configuring the outgoing mail settings, but you may still have to generate a PGP key to get things started up.
  • You can skip setting up a reverse proxy and use our development servers via python3 run.py instead.
  • Some services depend on other services. Some such integrations are optional, but all services depend on meta.sr.ht.
#Dev dependencies

In addition to the runtime dependencies of our packages, building packages from source requires additional build-time dependencies:

  • sassc for CSS pre-processing
  • npm for minifying CSS
  • go for compiling the Go APIs
#Generic instructions

Do this once, when starting with meta.sr.ht:

  • In addition to meta.sr.ht, check out core.sr.ht
  • Copy meta.sr.ht's config.example.ini to config.ini and configure everything following the instructions in the comments.

Then, for each SERVICE:

  • export SRHT_PATH=/path/to/core.sr.ht/srht
  • export PYTHONPATH=/path/to/core.sr.ht:/path/to/$SERVICE
  • make all

For each service except meta.sr.ht:

  • Copy the service's section(s) from its config.example.ini into meta.sr.ht's config.ini, modifying it according to the comments.
  • ln -s /path/to/meta.sr.ht/config.ini config.ini

For each SERVICE:

  • createdb $SERVICE
  • ./$SRV-initdb (e.g. ./metasrht-initdb)

To run a service:

  • ./api/api
  • python run.py

#Sending Patches

We use git send-email and discuss patches (and other development topics) on the sr.ht-dev list. Please send your patches and development questions there.

About this wiki

commit 7b1ad7e37a518af54c2d519f785ed8a3bea7a240
Author: Haowen Liu <lhw@lunacd.com>
Date:   2022-06-20T12:51:57-07:00

Fix debian/oldstable update frequency
Clone this wiki
https://git.sr.ht/~sircmpwn/sr.ht-docs (read-only)
git@git.sr.ht:~sircmpwn/sr.ht-docs (read/write)