2.3 KiB
2.3 KiB
title | toc |
---|---|
Hacking on SourceHut | false |
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-processingnpm
for minifying CSSgo
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
toconfig.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'sconfig.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.