I have Bitwarden self-hosted on a Linode Debian 10 VM with 4 cores/8GB of RAM.
If I start Bitwarden via “bitwarden.sh start”, it works great. But if I start it via systemd, it goes into a constant crash-and-restart loop. ‘docker ps’ shows the containers restarting continuously, after only a few seconds.
None of the logs show any errors, though I see this in the MSSQL error.log:
2020-06-29 16:20:33.13 spid18s SQL Server is now ready for client connections. This is an informational message; no user action is required. 2020-06-29 16:20:34.00 spid9s Starting up database 'tempdb'. 2020-06-29 16:20:34.42 spid21s The Service Broker endpoint is in disabled or stopped state. 2020-06-29 16:20:34.42 spid21s The Database Mirroring endpoint is in disabled or stopped state. 2020-06-29 16:20:34.44 spid21s Service Broker manager has started. 2020-06-29 16:20:34.45 spid6s Recovery is complete. This is an informational message only. No user action is required. 2020-06-29 16:20:40.73 spid6s Always On: The availability replica manager is going offline because SQL Server is shutting down. This is an informational message only. No user action is required. 2020-06-29 16:20:40.73 spid6s SQL Server is terminating in response to a 'stop' request from Service Control Manager. This is an informational message only. No user action is required. 2020-06-29 16:20:41.57 spid21s Service Broker manager has shut down. 2020-06-29 16:20:44.51 spid6s SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.
Not a SQL Server DBA, but seems like MSSQL is the victim rather than the cause here. I did not see any other significant messages in other logs.
Here is my systemd unit file:
[Unit] Description=Bitwarden Requires=docker.service After=docker.service [Service] Restart=always ExecStart=/bitwarden/bitwarden.sh start ExecStop=/bitwarden/bitwarden.sh stop [Install] WantedBy=default.target
My exact sequence of steps to setup is:
mkdir /bitwarden cd /bitwarden apt install -y apt-transport-https ca-certificates wget gnupg2 software-properties-common wget -O - https://download.docker.com/linux/debian/gpg | apt-key add echo "deb [arch=amd64] https://download.docker.com/linux/debian buster stable" > /etc/apt/sources.list.d/docker.list apt update apt-cache madison docker-ce apt install -y docker-ce docker-ce-cli docker-compose containerd.io systemctl start docker systemctl enable docker curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh && chmod +x bitwarden.sh ./bitwarden.sh install (I selected to use a Let's Encrypt cert) Create the systemd unit file above in /etc/systemd/system/bitwarden.service systemctl daemon-reload systemctl enable bitwarden systemctl start bitwarden
Is there a systemd directive I’m missing perhaps? Again, it runs fine without crashing or restarting if I invoke “bitwarden.sh start” on the command line, and I’m able to use the web front-end to create accounts, add entries, etc. But stopping and restarting with systemd results in a spin cycle.