# Freedive To start your Phoenix server: * Run `mix setup` to install and setup dependencies * Start Phoenix endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server` Now you can visit [`localhost:4000`](http://localhost:4000) from your browser. ## User management > Every user has full access to every part of the system via Freedive, do NOT create accounts for people you do not trust to have root access on this machine. ### Devel Create release: - `mix release --overwrite` Create account on dev server - `_build/dev/rel/freedive/bin/freedive eval "Freedive.Release.account_create"` Reset password for account on dev server - `_build/dev/rel/freedive/bin/freedive eval "Freedive.Release.password_reset"` ### Deploy Create FreeBSD package: - `mix package` Copy package to target machine: - `scp freedive-0.1.0.pkg hostname:` SSH to the tagret machine, use `doas -S` (or `sudo -s`) if required to gain admin privileges and then run: - `pkg install -U -y freedive-0.1.0.pkg` Configure Freedive - `$EDITOR /usr/local/etc/freedive/freedive.env` Set preferences in freedive.env - `HOST="hostname"` - `BIND="ip-to-bind"` - `PORT=3443` Ensure that the host is set to whatever hostname you'll use to access the service from browser. For example, if you bind to the Tailscale/Wireguard IP, use the hostname that'll point to this IP. Port can be anything suitable in your environmet that's open and accessible from your mobile/laptop. Enable Freedive - `service freedive enable` Initialize Freedive - `service freedive init` Create an account for yourself - `service freedive account_create` Start Freedive - `service freedive start` Check logs - `tail -f /var/log/freedive/freedive.log` Visit https://hostname:port from your browser and log in with the account created above.