86 lines
3.0 KiB
Markdown
86 lines
3.0 KiB
Markdown
|
# Ausführen
|
||
|
|
||
|
Um die Anwendung lokal auszuführen, können die folgenden Befehle verwendet werden.
|
||
|
|
||
|
```
|
||
|
export GOPATH=/tmp
|
||
|
source bootstrap.sh
|
||
|
authelia-scripts suites setup Standalone
|
||
|
```
|
||
|
|
||
|
Nun sollte der "Haupt-Enpunkt" unter `https://home.example.com:8080` und die API unter `https://authelia.example.com:9091` erreichbar sein. Achtung: es wird ein selbstsigniertes Zertifikat verwendet!
|
||
|
Mithilfe der Hot-Reload kann jetzt gecoded werden.
|
||
|
|
||
|
---
|
||
|
|
||
|
Nach der Entwicklung kann die Testumgebung durch den folgenden Befehl wieder zurückgesetzt werden.
|
||
|
|
||
|
```
|
||
|
go run ./cmd/authelia-scripts/ suites teardown Standalone
|
||
|
```
|
||
|
|
||
|
## Benutzerdefinierte Zertifikate
|
||
|
|
||
|
Um ein benutzerdefiniertes Zertifikat für die Ausführung zu verwenden, muss die Datai `public.backend.crt` und `private.bakend.pem` unter [diesem](/internal/suites/common/pki/) Verzeichnis abgeändert werden.
|
||
|
Um die Gültigkeit zu testen, kann der folgendende Befehl ausgeführt werden.
|
||
|
|
||
|
```
|
||
|
curl https://auth.rpjosh.de:9091 --connect-to 'auth.rpjosh.de:9091:authelia.example.com:9091'
|
||
|
```
|
||
|
|
||
|
## Externe erreichbarkeit
|
||
|
|
||
|
Im aktuellen Zustand sind die Endpunkte nur unter den Docker internen IP-Adressen erreichbar. Daher muss noch ein NAT Regel angelegt werden.
|
||
|
|
||
|
```
|
||
|
ip=$(ping -c 1 authelia.example.com | gawk -F'[()]' '/PING/{print $2}')
|
||
|
sudo iptables -t nat -A PREROUTING -p tcp --dport 9091 -d 192.168.0.15 -j DNAT --to-destination 192.168.240.50:9091 -m comment --comment "Authelia-Test"
|
||
|
sudo iptables -t nat -A PREROUTING -p tcp --dport 9092 -d 192.168.0.15 -j DNAT --to-destination 192.168.240.50:9092 -m comment --comment "Authelia-Test"
|
||
|
sudo iptables -t nat -I OUTPUT -p tcp -o lo --dport 9091 -j DNAT --to-destination 192.168.240.50:9091
|
||
|
```
|
||
|
|
||
|
# Customizations
|
||
|
|
||
|
Für das Starten des *gRPC* Servers müssen die folgenden Abhängigkeiten installiert werden.
|
||
|
|
||
|
```
|
||
|
go get github.com/envoyproxy/go-control-plane
|
||
|
go get github.com/envoyproxy/go-control-plane/envoy/config/core/v3
|
||
|
go get github.com/gogo/googleapis/google/rpc
|
||
|
go get google.golang.org/grpc
|
||
|
```
|
||
|
|
||
|
## Konfiguration ändern
|
||
|
|
||
|
Wenn die Konfiguration geändert wurde, müssen die Keys zur Validierung wieder erneut gebaut werden.
|
||
|
|
||
|
```
|
||
|
go run ./cmd/authelia-gen code keys
|
||
|
```
|
||
|
|
||
|
## Bauen
|
||
|
|
||
|
Um ein Docker Image für authelia zu bauen, müssen die folgenden Befehle ausgeführt werden.
|
||
|
|
||
|
```sh
|
||
|
# Dieser Befehle funktionieren aktuell nicht
|
||
|
authelia-scripts docker build
|
||
|
authelia-scripts build
|
||
|
|
||
|
# => Manuell bauen
|
||
|
export CC=musl-gcc
|
||
|
|
||
|
authelia-scripts build
|
||
|
cp -r dist/public_html internal/server/
|
||
|
go build -buildmode=pie -ldflags "-linkmode=external -s -w" -trimpath -buildmode=pie -o authelia ./cmd/authelia
|
||
|
mv authelia authelia-linux-amd64-musl
|
||
|
# Build docker image
|
||
|
docker build --tag git.rpjosh.de/rpjosh/authelia/authelia:4.38.0-dev .
|
||
|
docker push git.rpjosh.de/rpjosh/authelia/authelia:4.38.0-dev
|
||
|
# Cleanup
|
||
|
rm -rf internal/server/public_html/ ./authelia-linux-amd64-musl
|
||
|
```
|
||
|
|
||
|
# gRCP
|
||
|
|
||
|
Um einen gRCP Endpunkt nutzen zu können, brauch mein eine *.proto* Datei. Für Envoy sieht diese wie in [dieser Datei](/ext-auth.proto) folgendermaßen aus.
|