Compare commits

..

6 Commits

Author SHA1 Message Date
6a1824c6ec Asciinema wird unter neuer Domain betrieben 2024-11-15 23:18:18 +00:00
scriptos
bc29ad9bda Umstellung auf neue Domain 2024-03-31 13:38:47 +02:00
scriptos
319d6b71ad Doku gemacht 2024-03-23 23:05:32 +01:00
scriptos
47da27e25e docker-compose hinzugefügt 2024-03-23 23:05:16 +01:00
scriptos
5e9340ac13 Header aktualisiert + Filename geändert 2024-03-13 09:42:45 +01:00
scriptos
17ff47d9dc 'asciinema-installer.v1.sh' moved to new repo 2024-03-13 09:38:10 +01:00
3 changed files with 146 additions and 0 deletions

View File

@@ -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.techniverse.net` 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.

View File

@@ -0,0 +1,46 @@
#!/bin/bash
# Script Name: asciinema-client-installer.v1.sh
# Beschreibung: Installiert die asciinema Software Clientseitig und konfiguriert die Bash-Umgebung
# unterstützte Bash: /bin/bash & /bin/zsh
# Aufruf: ./asciinema-client-installer.v1.sh
# Autor: Patrick Asmus
# Web: https://www.techniverse.net
# Git-Reposit.: https://git.techniverse.net/scriptos/asciinema.git
# Version: 1.2.1
# Datum: 16.11.2024
# Modifikation: Asciinema wird unter neuer Domain betrieben
#####################################################
ASCIINEMA_API_URL="https://asciinema.it-nerds.com"
# Software installieren
sudo apt update && sudo apt install asciinema -y
# Überprüfen, ob die Oh-my-ZSH-Konfigurationsdatei '.zshrc' existiert
if [ -f "/root/.zshrc" ]; then
CONFIG_FILE="/root/.zshrc"
else
CONFIG_FILE="/root/.bashrc"
fi
# Konfigurationsdatei bearbeiten
echo "export ASCIINEMA_API_URL=$ASCIINEMA_API_URL" >> $CONFIG_FILE
# Info an Benutzer
echo "----------------------------------------------------"
echo "Bitte starte das Terminal neu, um die Änderungen zu übernehmen."
# Weitere Befehle für die Verwendung von asciinema
echo "----------------------------------------------------"
echo "Folgende Befehle stehen anschließend zur Verfügung:"
echo ""
echo "asciinema auth Startet die Authentifizierung über die API der eigenen Instanz"
echo "asciinema rec 'name' Startet die Aufnahme mit dem angegebenen Namen"
echo "asciinema upload 'name' Lädt das File auf die Instanz $ASCIINEMA_API_URL hoch"
echo "asciinema play 'name' Spielt eine aufgezeichnete Sitzung ab."
echo "asciinema ls Listet alle lokalen Aufzeichnungen auf."
echo "asciinema cat 'name' Zeigt den Inhalt einer aufgezeichneten Sitzung an."
echo "asciinema edit 'name' Bearbeitet eine vorhandene Aufzeichnung."
echo "asciinema rm 'name' Löscht eine lokale Aufzeichnung."
exit 0

View 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