freedive/README.md

86 lines
1.8 KiB
Markdown
Raw Normal View History

2024-05-09 21:28:48 +02:00
# Freedive
2024-05-09 16:14:45 +02:00
2024-05-09 21:28:48 +02:00
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.
2024-05-13 12:02:26 +02:00
## User management
2024-05-09 21:28:48 +02:00
2024-05-13 12:02:26 +02:00
> 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"`
2024-05-23 10:33:04 +02:00
### 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.