~sircmpwn/sr.ht-docs

e50d55e6de84fb07e17169d7f885a3ba394f6540 — Conrad Hoffmann 19 days ago c5062e4
Start documenting dev environment setup

Add some generic setup instructions. Now that most services follow a
fixed pattern, these should cover 90% of use-cases.
1 files changed, 39 insertions(+), 0 deletions(-)

M hacking.md
M hacking.md => hacking.md +39 -0
@@ 11,12 11,51 @@ contributing to SourceHut.
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](https://git.sr.ht/~sircmpwn/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`

To run a service:

* `./api/api`
* `python run.py`

# Sending Patches