demo instance: https://net.forgeflux.org
Find a file
2025-10-06 16:53:42 +05:30
.reuse feat: init 2024-04-26 15:21:57 +05:30
.sqlx fix: sqlx offline compilation 2025-10-06 16:36:26 +05:30
config feat: spin up two local instances for fedi dev 2025-09-09 11:31:19 +05:30
docs/third-party fix: nlnet logo 2024-05-30 16:14:20 +05:30
LICENSES feat: init 2024-04-26 15:21:57 +05:30
migrations feat: block local person and repository actors as well 2025-08-31 18:57:25 +05:30
mod_plugins feat: WASM remote instance blocklist moderation plugin 2025-09-01 00:40:09 +05:30
scripts fix: install libssl in docker container 2024-05-13 14:40:06 +05:30
sec feat: spin up two local instances for fedi dev 2025-09-09 11:31:19 +05:30
src feat: rename get_person service to get_or_create_person service 2025-10-06 15:32:54 +05:30
utils chore(deps): update rust crate actix-rt to v2.11.0 2025-10-04 10:37:47 +00:00
web_ui feat: include block and unblock links in UI 2025-08-31 18:58:23 +05:30
.dockerignore fix: compile wasm 2025-09-01 02:43:50 +05:30
.env.docker-compose feat: env vars list for docker-compose 2024-05-13 14:11:30 +05:30
.env_sample feat: update .env_sample to include Forgejo and GH secrets 2025-09-08 17:33:05 +05:30
.envrc feat: init devenv 2024-05-23 08:35:21 +05:30
.gitignore fix: sqlx offline compilation 2025-08-31 18:57:26 +05:30
.woodpecker.yml feat: run cached builds only for renovate 2025-10-04 14:16:14 +05:30
Cargo.lock fix(deps): update rust crate actix-identity to 0.9.0 2025-10-04 10:57:58 +00:00
Cargo.toml fix(deps): update rust crate actix-identity to 0.9.0 2025-10-04 10:57:58 +00:00
devenv.lock feat: block local person and repository actors as well 2025-08-31 18:57:25 +05:30
devenv.nix chore: update devenv 2025-08-31 18:52:59 +05:30
devenv.yaml feat: init devenv 2024-05-23 08:35:21 +05:30
docker-compose.yml chore(deps): update postgres docker tag to v18 2025-10-04 10:58:03 +00:00
Dockerfile fix: compile wasm 2025-09-01 02:43:50 +05:30
Makefile feat: spin up two local instances for fedi dev 2025-09-09 11:31:19 +05:30
README.md feat: spin up two local instances for fedi dev 2025-09-09 11:31:19 +05:30
renovate.json Add renovate.json 2024-06-02 13:45:31 +00:00

ForgeFlux

API-space federation for software forges

status-badge

Development environment

Note: this section is WIP. Please open issues if they don't work. Thanks!

1. Prerequisites

  1. Docker
  2. GNU Make
  3. nix-shell
  4. direnv
  5. devenv
  6. Rust
  7. sqlx-cli

2. Clone the Repo

git clone https://git.batsense.net/ForgeFlux/ForgeFlux.git
cd ForgeFlux

3. Set environment variables

cp .env_sample .env

Edit .env for your setup:

4. Launch development dependency containers

make env.db

5. Build program

make

UI Development

All UI stuff is at ./web_ui.

UI Stack:

  1. Tera templating engine
  2. Tailwind CSS
  3. htmx
  4. Alpine.js

UI Workflow

  1. Create template in web_ui/templates/. Example
  2. Write Rust logic to render templates in web_ui/src/. Example.
  3. Write tests to render templates. Example.
  4. Inspect file created in step 3 in browser to inspect your work.

Federation Development

A local development environment is setup with two instances of ForgeFlux (this software). Currently, I use tmux to launch two instances on two separate panes.

1. Install local CA

make env.certs

2. Launch server 1

Uses settings in .env and config/default.toml.

make env.server.1

3. Launch server 2

Uses settings config/server2.toml and environment variables set directly in the Makefile rule.

make env.server.2

Funding

NLnet

NLnet NGIZero logo

2024 development is funded through the NGI0 Entrust Fund, via NLnet. Please see here for more details.