#!/sbin/openrc-run supervisor=supervise-daemon command_user=akkoma:akkoma command_background=1 # Ask process to terminate within 30 seconds, otherwise kill it retry="SIGTERM/30/SIGKILL/5" pidfile="/var/run/akkoma.pid" directory=/opt/akkoma healthcheck_delay=60 healthcheck_timer=30 : ${akkoma_port:-4000} # Needs OpenRC >= 0.42 #respawn_max=0 #respawn_delay=5 # put akkoma_console=YES in /etc/conf.d/akkoma if you want to be able to # connect to akkoma via an elixir console if yesno "${akkoma_console}"; then command=elixir command_args="--name akkoma@127.0.0.1 --erl '-kernel inet_dist_listen_min 9001 inet_dist_listen_max 9001 inet_dist_use_interface {127,0,0,1}' -S mix phx.server" start_post() { einfo "You can get a console by using this command as akkoma's user:" einfo "iex --name console@127.0.0.1 --remsh akkoma@127.0.0.1" } else command=/usr/bin/mix command_args="phx.server" fi export MIX_ENV=prod export ERL_EPMD_ADDRESS=127.0.0.1 depend() { need nginx postgresql } healthcheck() { # put akkoma_health=YES in /etc/conf.d/akkoma if you want healthchecking # and make sure you have curl installed yesno "$akkoma_health" || return 0 curl -q "localhost:${akkoma_port}/api/akkoma/healthcheck" }