bonfirestarter/README.md

95 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Bonfire Automated Installer
This repository provides a single script that installs, configures, and deploys the [Bonfire federated platform](https://bonfirenetworks.org/) on a fresh Ubuntu 24.04 server with Nginx and Lets Encrypt SSL.
---
## Features
- Automated installation of dependencies (Postgres, Elixir, Node.js, Nginx, Certbot).
- Prompts for domain, email, and database password.
- Automatic DNS/FQDN validation (checks A/AAAA records).
- Configures Bonfire as a `systemd` service.
- HTTPS enabled via Lets Encrypt.
---
## Requirements
- Fresh Ubuntu 22.04+ or Debian 12+ server.
- A fully qualified domain name (FQDN) pointing to the servers IP.
- Root or sudo access.
## Installation
### 1. Download the installer
```bash
git clone https://your-repo-url/bonfire-installer.git
cd bonfire-installer
chmod +x install_bonfire.sh
```
### 2 . Run the installer
```bash
sudo ./install_bonfire.sh
```
The script will:
- Prompt for your **domain name**, **email address**, and **database password**.
- Validate that your domain resolves correctly (A/AAAA DNS records).
- Install required system packages.
- Configure Postgres and Bonfire.
- Set up Nginx with SSL.
- Create a `systemd` service for Bonfire.
## Usage
### Start/Stop/Restart Bonfire
```bash
sudo systemctl start bonfire
sudo systemctl stop bonfire
sudo systemctl restart bonfire
sudo systemctl status bonfire
```
----------
### Verify Nginx + SSL
```bash
sudo nginx -t
sudo systemctl reload nginx
```
### Access the App
Once installation is complete, open:
```http
https://yourdomain.com
```
## Updating Bonfire
When new versions are released:
```bash
cd /opt/bonfire
sudo -u bonfire git pull
sudo -u bonfire MIX_ENV=prod mix compile
sudo -u bonfire MIX_ENV=prod mix ecto.migrate
sudo systemctl restart bonfire
```
## Logs
View logs for troubleshooting:
```bash
journalctl -u bonfire -f
```
## Uninstall
To remove Bonfire and related services:
```bash
sudo systemctl stop bonfire
sudo systemctl disable bonfire
sudo rm -rf /opt/bonfire
sudo deluser --remove-home bonfire
sudo -u postgres dropdb bonfire
sudo -u postgres dropuser bonfire
sudo rm /etc/systemd/system/bonfire.service
sudo systemctl daemon-reload
```
## Notes
- Ensure your domains DNS records are properly configured **before** running the installer.
- The script is intended for production use on a dedicated server or VM.
- For staging/testing, you may adapt the script to use self-signed certificates instead of Lets Encrypt.