aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorConrad Hoffmann <ch@bitfehler.net>2022-05-04 10:49:11 +0200
committerDrew DeVault <sir@cmpwn.com>2022-05-11 13:08:22 +0200
commite50d55e6de84fb07e17169d7f885a3ba394f6540 (patch)
tree87289dfb1cba2418267ffc3d0122c73100f7d4e4
parentc5062e41b1c0b75394a07474d5ee7122c2d205eb (diff)
downloadsr.ht-docs-e50d55e6de84fb07e17169d7f885a3ba394f6540.tar.gz
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.
-rw-r--r--hacking.md39
1 files changed, 39 insertions, 0 deletions
diff --git a/hacking.md b/hacking.md
index 7c00e75..22e998b 100644
--- a/hacking.md
+++ b/hacking.md
@@ -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