The following steps describe the prerequisites for the actual firefly setup:
-
Flash (e.g., using Etcher) raspbian-buster-lite onto SD card (e.g., 16GB).
-
Create an empty
ssh
file on the SD card's boot partition. -
Create a
wpa_supplicant.conf
file (see template provided with this gist) on the SD card's boot partition (link). -
Eject SD card properly and start raspi with it (just provide power).
-
Use a shell/terminal and connect to the raspi with
ssh pi@rasperrypi
(usernamepi
, hostnameraspberrypi
, and default password israspberry
).
If your raspi is not found, check (1) whether your WPA config was correct (note that the file gets deleted whenever the raspi boots), (2) that your router allowed your raspi to enter your WAN/LAN, and (3) that you remove your raspi from previous known hosts (.ssh/known_hosts
).
-
Update the raspi:
sudo apt-get -y update && sudo apt-get -y full-upgrade
-
Change
pi
user password:sudo raspi-config
-
Install Docker:
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker pi
- optional: test docker
docker run hello-world
-
Install docker-compose:
sudo apt-get -y install libffi-dev libssl-dev
sudo apt-get -y install python python-pip
sudo apt-get -y remove python-configparser
(some fix I had to apply for correct pip-based install)sudo pip install docker-compose
-
Configure raspi:
sudo raspi-config
- Set hostname to, e.g.,
firefly
(needs to be consistent with all upcomming hostnames). Note that for subsequent ssh connects the new hostname needs to be used: e.g.,ssh pi@firefly
... - optional: set timezone, WiFi locale, expand filesystem etc. and reboot
sudo reboot
.
-
Create folder structure for firefly and nginx config:
cd /opt/
sudo mkdir docker
cd docker/
sudo mkdir conf.d
cd conf.d/
-
Create nginx config:
sudo openssl req -x509 -newkey rsa:2048 -keyout firefly.key -out firefly.crt -days 365 -nodes
(the hostname needs to be set accordingly, all other settings are optional/can be defaulted)sudo nano firefly.conf
(and pastefirefly.conf
contents, theproxy_pass
needs to be adjusted later)- check:
ls
should outputfirefly.conf firefly.crt firefly.key
...
-
Create firefly config:
cd /opt/docker/
sudo nano firefly.yml
(see template provided with this gist and adjustPOSTGRES_PASSWORD
)sudo nano firefly.env
(see template) and adjust as follows:
...
TZ=<your preferred time zone>
...
APP_URL=https://firefly
...
TRUSTED_PROXIES=**
...
DB_PASSWORD=<pw set for postgres earlier>
...
-
optional: Make a backup of your SD card.
-
start docker in order to get
proxy_pass
for firefly.conf:docker-compose -f firefly.yml up -d
(start firefly)docker network inspect docker_firefly_iii_net
(read out the gateway address, mine is "172.18.0.1")docker-compose -f firefly.yml stop
(stop firefly)sudo nano conf.d/firefly.conf
(adjust theproxy_pass
)
- start:
docker-compose -f firefly.yml up -d
- stop:
docker-compose -f firefly.yml stop
- recreate:
docker-compose -f firefly.yml up -d --force-recreate
- show log while running:
docker container ls -f name=firefly_iii_app
(copyCONTAINER ID
)docker container logs -f <containerID>
I am also getting an 502 Bad Gateway error message.