first commit

This commit is contained in:
2025-09-27 18:13:02 -04:00
commit 6e1b5407b7
253 changed files with 289900 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
NGINX_HOSTNAME=AsusVivobook
NGINX_SERVER_IP=172.26.11.25
DIR_OBSIVIEWER=/DOCKER_CONFIG/obsiviewer
DIR_OBSIVIEWER_VAULT=/NFS/OBSIDIAN_DOC/Obsidian_MAIN
PORT=4000
NODE_ENV=production
TZ=America/Montreal
+16
View File
@@ -0,0 +1,16 @@
# Fichier d'exemple pour les variables d'environnement - ObsiViewer
# Copiez ce fichier en .env et ajustez les valeurs selon vos besoins
# Configuration du serveur
NGINX_HOSTNAME=obsi-viewer
# Fuseau horaire
TZ=America/Montreal
# Répertoire de base pour les volumes (optionnel)
# DIR_OBSIVIEWER=/path/to/your/obsi-viewer/data
# Configuration réseau (optionnel)
# Si vous voulez accéder à l'application depuis d'autres machines
# remplacez 127.0.0.1 par 0.0.0.0
# HOST=0.0.0.0
+71
View File
@@ -0,0 +1,71 @@
# ObsiViewer - Docker Compose
Cette configuration Docker Compose permet de déployer ObsiViewer dans un conteneur isolé.
## Prérequis
- Docker Engine
- Docker Compose
- Une image Docker `obsi-viewer-angular:latest` construite localement ou disponible dans un registre
## Configuration
1. **Variables d'environnement** :
- Copiez `docker-compose/.env.example` vers `docker-compose/.env`
- Ajustez les valeurs selon vos besoins :
- `NGINX_HOSTNAME` : nom d'hôte du conteneur
- `TZ` : fuseau horaire
- `DIR_OBSIVIEWER` : répertoire local pour les données (optionnel)
2. **Volumes** :
- `/app/vault` : répertoire de la voûte Obsidian (monté depuis l'hôte)
- `/app/assets` : fichiers de configuration
- `/app/db` : base de données (optionnel)
## Utilisation
### Démarrage
```bash
cd docker-compose
docker compose up -d
```
### Arrêt
```bash
docker compose down
```
### Reconstruction
```bash
docker compose up -d --build
```
## Accès à l'application
- **URL** : http://localhost:8080 (ou http://votre-hostname:8080)
- **API Health** : http://localhost:8080/api/health
- **Voûte Obsidian** : montée depuis `./vault` (ou le répertoire spécifié dans DIR_OBSIVIEWER)
## Structure des volumes
```
./vault/ # Répertoire de la voûte (optionnel)
├── assets/ # Configuration et assets
├── db/ # Base de données SQLite (optionnel)
└── [vos notes .md] # Fichiers de la voûte Obsidian
```
## Logs
```bash
docker compose logs -f obsi-viewer
```
## Dépannage
- Vérifiez les logs : `docker compose logs obsi-viewer`
- Vérifiez l'état du conteneur : `docker compose ps`
- Accédez au shell du conteneur : `docker compose exec obsi-viewer bash`
+25
View File
@@ -0,0 +1,25 @@
services:
obsi-viewer:
image: docker-registry.dev.home:5000/obsiviewer-angular:latest
container_name: obsiviewer-angular
hostname: ${NGINX_HOSTNAME:-obsiviewer-angular}
ports:
- "4444:4000"
environment:
- PORT=4000
- NODE_ENV=production
- TZ=${TZ:-America/Montreal}
volumes:
# Montage du répertoire de la voûte Obsidian (optionnel)
- ${DIR_OBSIVIEWER_VAULT:-./vault}:/app/vault
# Montage des assets pour la configuration
- ${DIR_OBSIVIEWER:-./vault}/assets:/app/assets
# Montage optionnel pour la base de données
- ${DIR_OBSIVIEWER:-./vault}/db:/app/db
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:4000/api/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
+21
View File
@@ -0,0 +1,21 @@
version: "3.9"
services:
newtube:
build: .
image: newtube:latest
container_name: newtube
ports:
- "4000:4000"
environment:
NODE_ENV: production
# Optional: configure API server
PORT: 4000
# Optional: secrets for Twitch etc. (if you prefer server env)
# TWITCH_CLIENT_ID: ""
# TWITCH_CLIENT_SECRET: ""
# YOUTUBE_API_KEY: ""
volumes:
# Persist the SQLite database and download temp dir outside the image
- ./db:/app/db
- ./tmp/downloads:/app/tmp/downloads
restart: unless-stopped
+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
HOSTNAME=$(hostname)
PORT="4000"
NODE_ENV="production"
TZ="America/Montreal"
DEFAULT_INTERFACE=$(ip route show default | awk '{print $5}'|head -n 1)
# Cross-platform IP detection for Debian and Alpine
if [ -f /etc/alpine-release ]; then
# Alpine Linux
SERVER_IP=$(ip -o -4 addr show $DEFAULT_INTERFACE | awk '{print $4}' | cut -d/ -f1)
else
# Debian-based systems
SERVER_IP=$(hostname -I | tr ' ' '\n' | grep -E "^$(ip -o -4 addr show $DEFAULT_INTERFACE | awk '{print $4}' | cut -d/ -f1)")
fi
DIR_OBSIVIEWER=/DOCKER_CONFIG/obsiviewer
DIR_OBSIVIEWER_VAULT=/NFS/OBSIDIAN_DOC/Obsidian_MAIN
echo "NGINX_HOSTNAME=$HOSTNAME" > .env
echo "NGINX_SERVER_IP=$SERVER_IP" >> .env
echo "DIR_OBSIVIEWER=$DIR_OBSIVIEWER" >> .env
echo "DIR_OBSIVIEWER_VAULT=$DIR_OBSIVIEWER_VAULT" >> .env
echo "PORT=$PORT" >> .env
echo "NODE_ENV=$NODE_ENV" >> .env
echo "TZ=$TZ" >> .env
sudo mkdir -p $DIR_OBSIVIEWER
sudo mkdir -p $DIR_OBSIVIEWER/db
sudo mkdir -p $DIR_OBSIVIEWER/assets
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env bash
set -euo pipefail
# Always execute relative to this script directory
cd "$(dirname "$0")"
REGISTRY="docker-registry.dev.home:5000"
IMAGE="obsiviewer-angular:latest"
# Pull latest image from private registry
docker image pull "${REGISTRY}/${IMAGE}"
# Restart stack with the current compose file
docker compose down
docker compose up -d
echo "Stack updated and running."