You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: SETUP.md
+24-2Lines changed: 24 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,17 +5,39 @@
5
5
* Containers are published to [GHCR](https://github.com/users/iFargle/packages/container/package/headscale-webui) and [Docker Hub](https://hub.docker.com/r/ifargle/headscale-webui)
6
6
7
7
# Contents
8
+
*[Bare Metal](#bare-metal)
8
9
*[Docker Compose](#docker-compose)
9
10
*[Reverse Proxies](#reverse-proxies)
10
11
*[Authentication](#authentication)
11
12
12
13
---
14
+
# Bare Metal
15
+
16
+
1. Install dependencies:
17
+
18
+
```bash
19
+
# Debian/Ubuntu
20
+
apt install gcc python3-poetry --yes
21
+
poetry install --only main
22
+
```
23
+
24
+
2. Configurations: rename `.env.sample` -> `.env` and edit `.env` as per your requirements.
25
+
26
+
3. Run server
27
+
28
+
```bash
29
+
poetry run gunicorn -b 0.0.0.0:5000 server:app
30
+
```
31
+
32
+
That's it. Cheers.
33
+
13
34
# Docker Compose
14
35
## Environment Settings
15
36
*`TZ` - Set this to your current timezone. Example: `Asia/Tokyo`
16
37
*`COLOR` Set this to your preferred color scheme. See the [MaterializeCSS docs](https://materializecss.github.io/materialize/color.html#palette) for examples. Only set the "base" color -- ie, instead of `blue-gray darken-1`, just use `blue-gray`.
17
38
*`HS_SERVER` is the URL for your Headscale control server.
18
39
*`SCRIPT_NAME` is your "Base Path" for hosting. For example, if you want to host on http://localhost/admin, set this to `/admin`, otherwise remove this variable entirely.
40
+
*`DATA_DIRECTORY` is your "Data Path". This is there the application will create and store data. Only applicable for bare metal installations.
19
41
*`KEY` is your encryption key. Set this to a random value generated from `openssl rand -base64 32`
20
42
*`AUTH_TYPE` can be set to `Basic` or `OIDC`. See the [Authentication](#Authentication) section below for more information.
21
43
*`LOG_LEVEL` can be one of `Debug`, `Info`, `Warning`, `Error`, or `Critical` for decreasing verbosity. Default is `Info` if removed from your Environment.
@@ -81,7 +103,7 @@ https://[DOMAIN] {
81
103
reverse_proxy * [HS_SERVER]
82
104
}
83
105
```
84
-
* Example:
106
+
* Example:
85
107
```
86
108
https://example.com {
87
109
reverse_proxy /admin* http://headscale-webui:5000
@@ -90,7 +112,7 @@ https://example.com {
90
112
}
91
113
```
92
114
93
-
---
115
+
---
94
116
# Authentication
95
117
*If your OIDC provider isn't listed or doesn't work, please open up a [new issue](https://github.com/iFargle/headscale-webui/issues/new) and it will be worked on.*
<li>To generate your API key, run the command <aclass="{{ COLOR_BTN }} white-text">headscale apikeys create</a> on your control server. Once you generate your first key, this UI will automatically renew the key near expiration.</li>
58
58
<li>The Headscale server is configured via the <aclass="{{ COLOR_BTN }} white-text">HS_SERVER</a> environment variable in Docker. Current server: <aclass="{{ COLOR_BTN }} white-text"> {{url}} </a></li>
59
59
<li>You must configure an encryption key via the <aclass="{{ COLOR_BTN }} white-text">KEY</a> environment variable in Docker. One can be generated with the command <aclass="{{ COLOR_BTN }} white-text">openssl rand -base64 32</a></li>
60
+
<li>Enter the API key generated by headscale, press "Save" then "Test". Saving before using the "Test" button is important.</li>
0 commit comments