FOSS United Platform – Developer Guide¶
The FOSS United Platform is developed and maintained by the FOSS United Foundation, with ongoing contributions from the community. Development takes place on GitHub.
Note: We welcome contributions from anyone. Join us by submitting issues, feature requests, or pull requests!
Installation Guide¶
Recommended Frappe Version: v15+
Recommended: Setup & Quick-start¶
Our recommended setup is via docker + frappe manager.
- Install
uvpython manager anddocker uv initin a new directoryuv add frappe-manageruv run fm create foss.localhostuv run fm start— choose site as it shows in menuuv run fm shell— enter into docker container shell and run further steps there- For frappe >= v16, install newsletter first:
bench get-app https://github.com/frappe/newsletterbench --site foss.localhost install-app newsletterbench get-app https://github.com/fossunited/fossunited.gitbench --site foss.localhost install-app fossunited— this will also install dashboard- Configure frappe for server scripts and developer mode:
bench set-config -g server_script_enabled truebench --site foss.localhost set-config developer_mode 1-
bench --site foss.localhost migrate -
To run tests please create new-site since it can have unintended DB changes.
bench new-site break.site- For frappe >= v16:
bench --site break.site install-app newsletter bench --site break.site install-app fossunited-
bench --site break.site set-config allow_tests true -
Open
foss.localhostin your browser and start exploring! - Dashboard page can be accessed via
foss.localhost/dashboard
Note: Since dashboard is not running as live dev server, you'd need to bench build --apps fossunited for changes to update.
If you would prefer for manual method, please follow on below
Manual Install¶
1. Prerequisites¶
- Set up your environment using the official Frappe installation guide.
- If you encounter a MariaDB password issue, refer to this DigitalOcean guide to reset your root password.
If the kill command fails:
ps aux | grep mysqld
sudo kill -9 <pid_of_mysqld> <pid_of_mysql_safe>
Ensure MySQL processes are fully stopped before restarting.
2. Setup Steps¶
# Create a new bench
bench init fossu-bench
cd fossu-bench
Install Newsletter App¶
For frappe >= v16, the Newsletter module has been moved as an separate app. Install it before fossunited:
bench new-site foss.localhost
bench get-app https://github.com/frappe/newsletter
bench --site foss.localhost install-app newsletter
Related discussion: #1120
Install FOSS United App¶
# Get the app
bench get-app https://github.com/fossunited/fossunited
# Install the app on the site
bench set-config -g server_script_enabled true
bench --site foss.localhost install-app fossunited
bench --site foss.localhost set-config developer_mode 1
bench --site foss.localhost migrate
# Start development server
bench start
To access the site in your browser, follow:
Access Site via Browser
NixOS Setup¶
For those using NixOS, refer to this guide ==> Issue #1068 – NixOS Setup Guide to get going.
FOSS United Dashboard¶
The Dashboard is an admin UI for volunteers to manage activities across FOSS Clubs and City Chapters.
Dashboard Setup¶
# Go to the dashboard directory
cd fossunited/dashboard
# Install dependencies
yarn install
Required Configuration¶
In your site_config.json, add the following:
{
"ignore_csrf": 1
}
Run the Dashboard¶
yarn dev
The dashboard will be available at:
==> http://<your-site-name>:8080
Pre-commit Hooks¶
To automatically run linters before commits:
- We use ruff for linting python files. It is recommended to use prettier for formatting HTML, CSS & Vue files.
- Vale is used for spell check and grammar check for docs content.
uv add pre-commit
pre-commit install
Or use uv as an alternative Python package manager.
Troubleshooting¶
Common Issues¶
- MariaDB root password error — follow this guide to reset it
- Site shows errors after install — make sure you ran
bench --site foss.localhost migrate - Server scripts not running — verify
server_script_enabledis set totrue tatsucrash during install — a recenttatsurelease is broken. Fix it by downgrading and using--force:
./env/bin/pip install "tatsu<5.10.0"
bench --site foss.localhost install-app --force fossunited
See #1320 for more context on this issue.
macOS + Colima Setup¶
If you're using Colima instead of Docker Desktop, here are the fixes for the common errors you'll hit:
1. Docker socket not found
sudo ln -sfn ~/.colima/default/docker.sock /var/run/docker.sock
2. Missing Compose plugin
mkdir -p ~/.docker/cli-plugins
ln -sfn $(which docker-compose) ~/.docker/cli-plugins/docker-compose
3. UID 1000 crash
SITE_PKGS="$(uv run python -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')"
find "$SITE_PKGS/frappe_manager" -type f -name "*.py" -exec sed -i '' 's/os.getuid()/1000/g' {} +
find "$SITE_PKGS/frappe_manager" -type f -name "*.py" -exec sed -i '' 's/os.getgid()/1000/g' {} +
4. uv install failing (os error 1)
Run these inside fm shell before bench get-app:
export UV_CACHE_DIR=/tmp/uv_cache
export UV_LINK_MODE=copy
5. Dashboard build crash (exit code 137)
Colima's default RAM is too low for the Vite build. Restart with more resources:
colima start --cpu 4 --memory 8
Full discussion and all fixes: #1320
Useful Links¶
Happy hacking! If you face issues, open a GitHub issue or join the FOSS United community for help.