@d3iu/tiktok-quiz 2.1.4 → 2.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # TikTok Unified · 2.1.4
1
+ # TikTok Unified · 2.1.6
2
2
 
3
3
  **Autor: D3iu · [deiu@resita.eu](mailto:deiu@resita.eu)** · Licență AGPL-3.0.
4
4
 
@@ -6,7 +6,9 @@ Quiz TikTok LIVE pentru mai mulți creatori, overlay vertical, transmisie RTMP/R
6
6
 
7
7
  ## Instalare rapidă
8
8
 
9
- Necesită Linux amd64, Node.js 24+, Docker Engine local și Compose 2.30+.
9
+ **Pe Synology instalezi din Container Manager, fără terminal:** [descarcă arhiva pregătită](https://cdn.jsdelivr.net/npm/@d3iu/tiktok-quiz@2.1.6/synology.zip) și urmează secțiunea „Synology NAS fără SSH” de mai jos.
10
+
11
+ Pentru instalarea prin terminal pe Linux: amd64, Node.js 24+, Docker Engine local și Compose 2.30+.
10
12
 
11
13
  ```sh
12
14
  npm install -g @d3iu/tiktok-quiz
@@ -22,13 +24,90 @@ Asistentul întreabă portul (**8077** implicit), contul inițial, adresa public
22
24
  - [Procesul de publicare a versiunilor](https://github.com/d3iu/tiktok-unified/blob/main/docs/RELEASE.md)
23
25
  - [Modificări](https://github.com/d3iu/tiktok-unified/blob/main/CHANGELOG.md)
24
26
 
25
- ## Portainer și Synology
27
+ ## Synology NAS fără SSH — instalare simplă
28
+
29
+ Compatibilitate vizată: **DS1825+**, DSM **7.4.1-90080 Update 1**, Container Manager, procesor Intel/AMD x86-64. Nu ai nevoie de SSH, Node.js, npm sau cont GitHub pe NAS.
30
+
31
+ **[Descarcă pachetul Synology](https://cdn.jsdelivr.net/npm/@d3iu/tiktok-quiz@2.1.6/synology.zip)** · [descărcare alternativă](https://unpkg.com/@d3iu/tiktok-quiz@2.1.6/synology.zip)
32
+
33
+ 1. Descarcă ZIP-ul pe calculator și extrage-l. Păstrează fișierele din arhivă împreună.
34
+ 2. Deschide **`configure.html`** în browserul calculatorului. Completează emailul administratorului, parola și portul (implicit **8077**), apoi apasă **Descarcă compose.yaml**. Configuratorul funcționează local, fără să trimită datele pe internet.
35
+ 3. Înlocuiește fișierul `compose.yaml` din folderul extras cu cel generat. Dacă browserul l-a redenumit `compose (1).yaml`, redenumește-l în `compose.yaml`.
36
+ 4. În DSM → **File Station**, creează `/volume1/docker/tiktok-unified` și încarcă în el **`compose.yaml` și `seccomp.json`**. Nu este nevoie să încarci configuratorul HTML pe NAS.
37
+ 5. În **Container Manager → Project → Create**, alege numele `tiktok-unified`, folderul de mai sus și fișierul Compose existent (sau încarcă același fișier dacă interfața cere Upload). Confirmă crearea și pornirea proiectului.
38
+ 6. Deschide **`http://IP-NAS:8077`**, folosind portul ales, și autentifică-te cu datele introduse.
39
+
40
+ Gata: Container Manager descarcă imaginea publică și pornește aplicația. Datele sunt păstrate într-un volum Docker dedicat proiectului. **Nu modifica numele proiectului și nu șterge volumul la actualizare.** Parola există în fișierul Compose generat; păstrează-l privat.
41
+
42
+ Alternativ, poți completa direct `ADMIN_EMAIL` și `ADMIN_PASSWORD` în secțiunea `environment:` a fișierului Compose din editorul Container Manager, fără configurator. Pentru o instalare existentă, păstrează configurația și volumul actual; nu crea un proiect nou peste datele ei. Pe Synology, actualizează imaginea din Container Manager, cu aplicația oprită și datele salvate. Nu este necesar agentul npm.
43
+
44
+ Arhiva include profilul seccomp necesar browserului. Nu activează modul privilegiat și nu dezactivează sandbox-ul. Configurația este verificată în Docker Linux; funcționarea și performanța pe un NAS fizic depind de kernelul DSM și resursele disponibile.
45
+
46
+ ## Environment: variabile și configurare
47
+
48
+ `environment:` reprezintă variabilele primite de container. Un fișier `.env` este doar una dintre metodele de furnizare a valorilor; **nu este obligatoriu în Portainer sau Synology**.
49
+
50
+ ### Variabilele aplicației
51
+
52
+ | Variabilă | Exemplu / implicit | Ce configurează |
53
+ | --- | --- | --- |
54
+ | `ADMIN_EMAIL` | `admin@exemplu.ro` | Email obligatoriu pentru crearea primului administrator |
55
+ | `ADMIN_PASSWORD` | alegi o parolă de minimum 12 caractere | Obligatorie la prima pornire; nu folosi o parolă din exemple |
56
+ | `PUBLIC_URL` | gol sau `https://quiz.exemplu.ro` | Originea publică inițială, fără cale; ulterior setarea salvată din panou are prioritate |
57
+ | `COOKIE_SECURE` | `false` | `true` numai când accesezi panoul prin HTTPS configurat în proxy |
58
+ | `EULER_API_KEY` | gol | Cheie opțională, dacă serviciul de conectare TikTok o cere |
59
+ | `MAX_ACTIVE_BROADCASTS` | `1` pe NAS / `2` la instalarea npm | Limita inițială a sesiunilor media simultane; se poate gestiona ulterior din admin |
60
+ | `YOUTUBE_LOGIN_IDLE_SECONDS` | `180` | Expirarea ferestrei de conectare YouTube, în secunde |
61
+ | `PORT` | `3000` | Portul **intern** al aplicației; păstrează valoarea |
62
+ | `DB_PATH` | `/app/data/quiz.sqlite` | Baza de date din volumul persistent; păstrează valoarea |
63
+ | `DEPLOYMENT_MODE` | `synology` / `portainer` | Indică managerul care se ocupă de actualizare; template-ul îl setează automat |
64
+
65
+ ### Parametrii Docker/Compose
66
+
67
+ Aceste opțiuni configurează containerul și **nu se aplică dacă le adaugi doar în Environment-ul containerului**:
26
68
 
27
- Poți configura aplicația direct prin Environment în manager, fără npm sau un `.env` obligatoriu. Sunt disponibile template-uri și arhive dedicate pentru Linux x86-64: [instrucțiuni Portainer/Synology](https://github.com/d3iu/tiktok-unified/blob/main/docs/MANAGERS.md).
69
+ | Parametru | Implicit | Unde se aplică |
70
+ | --- | --- | --- |
71
+ | `HOST_PORT` | `8077` | Port pe gazdă în installer/stack Portainer; pe Synology, prima valoare din `ports: "8077:3000"` |
72
+ | `BIND_ADDRESS` | `0.0.0.0` | Adresa de ascultare pe gazdă; `127.0.0.1` permite numai acces local |
73
+ | `APP_VERSION` | versiunea template-ului | Tag-ul imaginii în stack-ul Portainer; pe Synology editezi `image:` |
74
+ | `SHM_SIZE` | `1gb` | Câmpul Compose `shm_size`, folosit de browsere |
75
+ | `MEMORY_LIMIT` | `3g` | Câmpul Compose `mem_limit` |
76
+ | `CPU_LIMIT` | `4.0` în installer | Câmpul `cpus` din instalarea npm; template-urile NAS nu impun o limită CPU implicită |
77
+ | `PIDS_LIMIT` | `1024` | Numărul maxim de procese |
78
+
79
+ ### Cum setezi valorile
80
+
81
+ **Prin instalatorul npm:** rulează `tiktok-quiz install` și răspunde la întrebări. Pentru schimbări ulterioare:
82
+
83
+ ```sh
84
+ tiktok-quiz configure --dir /cale/catre/instalare
85
+ ```
86
+
87
+ Installerul generează `.env` și `.runtime.env` cu permisiuni private. Dacă editezi manual `.env`, rulează apoi `tiktok-quiz start --dir /cale/catre/instalare` pentru sincronizare și aplicare. Oprește întâi activitățile LIVE. Nu distribui aceste fișiere.
88
+
89
+ **Prin Portainer:** la **Stacks → Add stack → Environment variables**, adaugă perechi nume/valoare sau folosește **Load variables from .env file**. Template-ul Portainer referă explicit aceste variabile. La actualizarea valorilor, actualizează/recreează stack-ul păstrând volumul. Tokenul pentru accesul la repository-ul GitHub privat se introduce în configurarea Git a Portainer, nu în Environment-ul aplicației.
90
+
91
+ **Prin Synology:** folosește configuratorul local de mai sus sau editează **Project → YAML Configurations → `environment:`**. În crearea unui container individual, variabilele sunt în **Advanced settings → Environment**; pentru joc și broadcast complet recomandăm **Project**, deoarece păstrează și profilul seccomp, memoria partajată și volumul.
92
+
93
+ Exemplu de editare directă în YAML:
94
+
95
+ ```yaml
96
+ environment:
97
+ ADMIN_EMAIL: "admin@exemplu.ro"
98
+ ADMIN_PASSWORD: "" # completează cu parola proprie, minimum 12 caractere
99
+ PUBLIC_URL: ""
100
+ COOKIE_SECURE: "false"
101
+ MAX_ACTIVE_BROADCASTS: "1"
102
+ ```
103
+
104
+ În câmpurile Environment ale interfețelor introduci valoarea **fără ghilimele suplimentare**. În YAML citează șirurile; un dolar literal se scrie `$$` pentru a evita interpretarea Compose. Configuratorul Synology face automat această conversie. Emailul/parola bootstrap sunt folosite numai la crearea administratorului inițial: schimbarea lor în Environment **nu resetează conturile existente**. Parolele existente se schimbă din aplicație.
28
105
 
29
106
  ## Actualizare
30
107
 
31
- Din contul de administrator: **Actualizare → Actualizează aplicația**. Sau:
108
+ **Instalări Synology/Portainer:** actualizează imaginea din managerul respectiv, păstrând volumul și configurația.
109
+
110
+ **Instalări făcute prin npm:** din contul de administrator: **Actualizare → Actualizează aplicația**. Sau:
32
111
 
33
112
  ```sh
34
113
  tiktok-quiz update --dir "$HOME/tiktok-unified"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@d3iu/tiktok-quiz",
3
- "version": "2.1.4",
3
+ "version": "2.1.6",
4
4
  "description": "Instalare și administrare TikTok Unified prin Docker",
5
5
  "type": "module",
6
6
  "bin": {
@@ -17,7 +17,9 @@
17
17
  "templates/",
18
18
  "README.md",
19
19
  "LICENSE",
20
- "configure.mjs"
20
+ "configure.mjs",
21
+ "synology.zip",
22
+ "portainer.zip"
21
23
  ],
22
24
  "scripts": {
23
25
  "test": "node --test test/*.test.mjs"
@@ -36,9 +38,9 @@
36
38
  },
37
39
  "tiktokUnified": {
38
40
  "schema": 1,
39
- "version": "2.1.4",
40
- "image": "ghcr.io/d3iu/tiktok-unified:2.1.4",
41
- "updaterImage": "ghcr.io/d3iu/tiktok-unified-updater:2.1.4",
42
- "notes": "# Modificări\n\n## 2.1.4\n\n- Resolve public installation and updates through npm with private GitHub source\n\n## 2.1.3\n\n- Document authenticated access to private deployment repository\n\n## 2.1.2\n\n- Add environment-based Portainer and Synology DS1825+ deployments\n\n## 2.1.1\n\n- Publish a new stable release automatically after each verified main change\n\n## 2.1.0\n\n- Instalare interactivă prin `@d3iu/tiktok-quiz`, cu port, cont inițial și limite Docker configurabile.\n- Administrare prin terminal: configurare, pornire, oprire, stare, loguri, backup și actualizare.\n- Meniu Actualizare pentru administrator, bazat pe GitHub Releases și imagini GHCR.\n- Backup complet și revenire automată după o actualizare eșuată; blocare în timpul activităților LIVE.\n- Repository public nou și distribuție fără datele private ale instalării autorului.\n- Include funcțiile Quiz, broadcast RTMP/RTMPS, muzică, conturi separate și animații la 30 FPS din versiunea unificată 2.0.0.\n"
41
+ "version": "2.1.6",
42
+ "image": "ghcr.io/d3iu/tiktok-unified:2.1.6",
43
+ "updaterImage": "ghcr.io/d3iu/tiktok-unified-updater:2.1.6",
44
+ "notes": "# Modificări\n\n## 2.1.6\n\n- Add public offline Synology installer and complete Environment documentation\n\n## 2.1.5\n\n- Document active trusted publishing for the public npm package\n\n## 2.1.4\n\n- Resolve public installation and updates through npm with private GitHub source\n\n## 2.1.3\n\n- Document authenticated access to private deployment repository\n\n## 2.1.2\n\n- Add environment-based Portainer and Synology DS1825+ deployments\n\n## 2.1.1\n\n- Publish a new stable release automatically after each verified main change\n\n## 2.1.0\n\n- Instalare interactivă prin `@d3iu/tiktok-quiz`, cu port, cont inițial și limite Docker configurabile.\n- Administrare prin terminal: configurare, pornire, oprire, stare, loguri, backup și actualizare.\n- Meniu Actualizare pentru administrator, bazat pe GitHub Releases și imagini GHCR.\n- Backup complet și revenire automată după o actualizare eșuată; blocare în timpul activităților LIVE.\n- Repository public nou și distribuție fără datele private ale instalării autorului.\n- Include funcțiile Quiz, broadcast RTMP/RTMPS, muzică, conturi separate și animații la 30 FPS din versiunea unificată 2.0.0.\n"
43
45
  }
44
46
  }
package/portainer.zip ADDED
Binary file
package/synology.zip ADDED
Binary file