Compare commits
2 Commits
5e9340ac13
...
319d6b71ad
Author | SHA1 | Date | |
---|---|---|---|
|
319d6b71ad | ||
|
47da27e25e |
47
README.md
47
README.md
@ -1,2 +1,49 @@
|
||||
# asciinema
|
||||
|
||||
Ich biete hier eine Docker-Server installation und ein Script für eine Clientseitige Installation an
|
||||
|
||||
|
||||
|
||||
|
||||
## asciinema Server
|
||||
|
||||
Zur komfortablen Bereitstellung des asciinema Servers stelle ich euch eine speziell vorbereitete Docker-Kompositionsdatei zur Verfügung. Diese `docker-compose.yaml` beinhaltet präzise definierte Einstellungen und Umgebungsvariablen, um den asciinema Server als Container-Dienst einzurichten.
|
||||
|
||||
|
||||
1. **Download und Vorbereitung**: Ladet die `docker-compose.yaml`-Datei herunter und speichert sie in einem passenden Verzeichnis auf eurem Server.
|
||||
|
||||
2. **Erzeugung eines Secret-Keys**: Generiert einen sicheren Schlüssel für eure Installation mit folgendem Befehl:
|
||||
`tr -dc A-Za-z0-9 </dev/urandom | head -c 64; echo`
|
||||
|
||||
3. **Anpassung der Konfigurationsdatei**: Öffnet die `docker-compose.yaml` und ersetzt den Platzhalter bei `SECRET_KEY_BASE` mit dem erzeugten Schlüssel. Passt die weiteren Umgebungsvariablen wie `URL_HOST`, `SMTP_HOST` und so weiter gemäß eurer Infrastruktur an.
|
||||
|
||||
4. **Deployment**: Startet euren asciinema Server mit dem Kommando:
|
||||
`docker-compose up -d`
|
||||
Dadurch werden die Docker Container im Hintergrund hochgefahren.
|
||||
|
||||
|
||||
### Hinweise zur Konfiguration:
|
||||
|
||||
- Der Dienst `asciinema-app` wird als Webapplikation konfiguriert, die auf Port `80` eures Hosts und intern auf Port `4000` des Containers lauscht.
|
||||
- Die Datenbankverbindung für `asciinema-app` erfolgt über einen separaten Postgres-Container, genannt `asciinema-db`.
|
||||
- Netzwerkeinstellungen innerhalb des `dockernet` sorgen für eine abgeschottete und sichere Kommunikation zwischen den Services.
|
||||
- Ich verwende Diesen Docker hinter einem eigenen ReverseProxy. Das bedeutet, diese Konfiguration ist für den Betrieb hinter einem ReverseProxy konfiguriert
|
||||
|
||||
|
||||
|
||||
|
||||
## asciinema Client
|
||||
|
||||
Der Client Installer ist relativ einfach gehalten.
|
||||
Das Script wird mit `bash asciinema-client-installer.v1.sh` ausgeführt und dann passiert folgendes:
|
||||
|
||||
|
||||
1. **Installation von asciinema**: Das Skript aktualisiert zuerst die Paketlisten des Systems mit `sudo apt update` und installiert dann asciinema über `sudo apt install asciinema -y`.
|
||||
|
||||
2. **Erkennung der Shell-Konfigurationsdatei**: Es wird geprüft, ob eine `.zshrc`-Datei (für oh-my-zsh) im Root-Verzeichnis existiert. Falls ja, wird diese als Konfigurationsdatei (`CONFIG_FILE`) verwendet, ansonsten wird `.bashrc` verwendet.
|
||||
|
||||
3. **Konfiguration der Umgebungsvariablen**: Das Skript fügt der erkannten Konfigurationsdatei die Umgebungsvariable `ASCIINEMA_API_URL` hinzu, wobei die URL standardmäßig auf `https://asciinema.media-techport.de` gesetzt wird. Diese Einstellung ist spezifisch für eure API.
|
||||
|
||||
4. **Informationen für den Benutzer**: Nach der Konfiguration zeigt das Skript eine Nachricht an, die den Benutzer auffordert, das Terminal neu zu starten, um die Änderungen zu übernehmen.
|
||||
|
||||
5. **Nützliche asciinema-Befehle**: Zum Abschluss listet das Skript verschiedene asciinema-Befehle auf, die nach der Installation verwendet werden können, wie `asciinema auth`, `asciinema rec`, `asciinema upload` und weitere, zur Aufnahme, Bearbeitung, Wiedergabe und Verwaltung von Terminal-Sitzungen.
|
||||
|
53
docker/docker-compose.yaml
Normal file
53
docker/docker-compose.yaml
Normal file
@ -0,0 +1,53 @@
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
|
||||
asciinema-app:
|
||||
image: ghcr.io/asciinema/asciinema-server:20240203
|
||||
container_name: asciinema-app
|
||||
restart: always
|
||||
networks:
|
||||
dockernet:
|
||||
ipv4_address: 172.16.0.49
|
||||
ports:
|
||||
- '80:4000'
|
||||
environment:
|
||||
- SECRET_KEY_BASE=%yoursecretkey%
|
||||
- URL_HOST=asciinema.domain.com
|
||||
- URL_SCHEME=https
|
||||
- SMTP_HOST=mail.your-server.de
|
||||
- SMTP_PORT=587
|
||||
- SMTP_USERNAME=noreply@domain.com
|
||||
- SMTP_PASSWORD=%yourpassword%
|
||||
- SMTP_FROM_ADDRESS=noreplydomain.com
|
||||
- SMTP_TLS=if_available
|
||||
- SMTP_AUTH=if_available
|
||||
- DATABASE_URL=postgresql://postgres@172.16.0.48/postgres
|
||||
- UPLOAD_SIZE_LIMIT=50000000
|
||||
- SIGN_UP_DISABLED=false
|
||||
volumes:
|
||||
- ./data:/var/opt/asciinema
|
||||
depends_on:
|
||||
asciinema-db:
|
||||
condition: service_healthy
|
||||
|
||||
asciinema-db:
|
||||
image: docker.io/library/postgres:14
|
||||
container_name: asciinema-db
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_HOST_AUTH_METHOD=trust
|
||||
networks:
|
||||
dockernet:
|
||||
ipv4_address: 172.16.0.48
|
||||
volumes:
|
||||
- ./db-data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ['CMD-SHELL', 'pg_isready -U postgres']
|
||||
interval: 2s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
networks:
|
||||
dockernet:
|
||||
external: true
|
Loading…
x
Reference in New Issue
Block a user