sudo adduser piegarden
sudo usermod -aG sudo piegarden
sudo usermod -aG adm piegarden
sudo usermod -aG systemd-journal piegarden
sudo mkdir /home/piegarden/.ssh
sudo cp ~/.ssh/authorized_keys /home/piegarden/.ssh/
sudo chown -R piegarden:piegarden /home/piegarden/
# Change port to 2222 in /etc/ssh/sshd_config
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
sudo systemctl restart ssh.service
sudo visudo
then add this line:
piegarden ALL=(ALL) NOPASSWD:ALL
systemctl --user daemon-reload
systemctl --user enable fossil
systemctl --user start fossil
systemctl --user status fossil -l
systemctl --user stop fossil
journalctl --user -u fossil
tar -xvzf fossil-src-202601281614.tar.gz
./configure; make
sudo mv fossil /usr/local/bin/f
# If this is a brand new fossil repo then you have to execute this command one time before the .fossil-settings/* files can be trusted
fossil setting allow-symlinks on
fossil add .fossil-settings/allow-symlinks
fossil commit -m "Enable symlinks in repository"
fossil setting empty-dirs on
fossil add .fossil-settings/empty-dirs
fossil commit -m "Enable empty-dirs in repository"
mkdir -p /home/piegarden/museum
mkdir -p /home/piegarden/bin
mkdir -p /home/piegarden/.local/share/systemd/user
sudo loginctl enable-linger $USER
fossil_db="/home/piegarden/museum/create.fossil"
mv create.fossil "$fossil_db"
# USE THIS
f rebuild --wal -R "$fossil_db"
# NOT THIS: <https://fossil-scm.org/home/doc/tip/www/server/whyuseaserver.wiki>
sqlite3 "$fossil_db" <<'SQL'
PRAGMA journal_mode=WAL;
SQL
First time setup ever requires admin password change. Open fossil db locally before you host the server since you need access to it locally via:
fossil ui
Emplace the fossil.service file
cp ~/create/fossil.service /home/piegarden/.local/share/systemd/user/fossil.service
Clone with (keep the path the same as it is on the server as it is on local so you don't get confused): sftp put your ~/.ssh/config to the machine your setting up
mkdir /home/piegarden/museum
mkdir -p /home/piegarden/deploy
cd /home/piegarden/museum
ensure your ssh config has an entry for your fossil server if the port is not 2222
f clone ssh://production//home/piegarden/museum/create.fossil
mkdir /home/piegarden/create
cd /home/piegarden/create
f open /home/piegarden/museum/create.fossil