Firefly III, Part Three

Firefly III, Part Three
Photo by Ray Reyes / Unsplash

Configure Operating System

Create SSH Key

Steps performed on desktop via Windows Terminal

  • ssh-keygen -t ed25519
  • Move-Item -Path c:\Users\david\filename* - Destination c:\Users\david\.ssh -Force
  • I open Windows Terminal Settings
  • I open the JSON file and add the following:
            {
                "colorScheme": "Ubuntu-ColorScheme",
                "commandline": "ssh -i \"~/.ssh/example\" [email protected]",
                "experimental.retroTerminalEffect": false,
                "font": 
                {
                    "face": "Cascadia Code"
                },
                "guid": "{0caa0dad-35be-5f56-a8ff-XXXXXXXXXXXXX}",
                "hidden": false,
                "name": "FIREFLY-01",
                "tabTitle": "FIREFLY-01"
            },
  • I confirm the GUID is unique and save the JSON file

Configure SSH

Steps performed on FIREFLY-01

  • mkdir /home/david/.ssh
  • nano /home/david/.ssh/authorized_keys
  • I paste in the public key and save authorized_keys
  • chmod 600 /home/david/.ssh/authorized_keys
  • sudo nano /etc/ssh/sshd_config
    • PermitRootLogin no
    • PubkeyAuthentication yes
    • PubkeyAcceptedKeyTypes ssh-ed25519
    • PasswordAuthentication no
    • AuthorizedKeysFile /home/david/.ssh/authorized_keys
  • I save sshd_config
  • sudo sshd -t
  • sudo systemctl restart ssh

Configure UFW

Steps performed on FIREFLY-01

  • sudo apt install ufw
  • sudo ufw allow 22
  • sudo ufw allow 80
  • sudo ufw allow 81
  • sudo ufw enable

Install Firefly III Dependencies

Steps performed on FIREFLY-01

  • sudo mkdir /apps
  • sudo mkdir /apps/firefly
  • sudo apt install docker
  • sudo apt install docker-compose

Install Firefly III

Steps performed on FIREFLY-01

  • cd /apps/firefly
  • wget https://raw.githubusercontent.com/firefly-iii/docker/main/docker-compose-importer.yml
  • wget https://raw.githubusercontent.com/firefly-iii/firefly-iii/main/.env.example
  • wget https://raw/githubusercontent.com/firefly-iii/docker/main/database.env
  • wget https://raw.githubusercontent.com/firefly-iii/data-importer/main/.env.example
  • sudo nano .importer.env
    • FIREFLY_III_URL=http://app.8080
  • sudo nano .env
    • DB_PASSWORD=secret_firefly_password
  • sudo nano .db.env
    • MYSQL_PASSWORD=secret_firefly_password
  • sudo docker-compose pull
  • sudo docker-compose up -d

Testing the installation at http:/firefly.domain.local in a browser is successful! It brought me to a registration page. Nice and easy, I like it! Now I just have to figure out how to use the software.