Příloha
Příloha A: Kategorie aplikací
| ID kategorie | Zobrazovaný název |
|---|---|
Audio_Video_Entertainment | Audio & Video Entertainment |
Photography_Video | Photography & Video |
Backup_Sync | Backup & Sync |
Development_Tools | Development Tools |
Utilities | Utilities |
Web_Services | Web Services |
Security | Security |
Download | Download |
Driver | Driver |
Artificial_Intelligence | AI |
Žádost o novou kategorii: Pokud žádná stávající kategorie nevyhovuje vaší aplikaci, můžete požádat o novou kategorii:
- Odešlete žádost o kategorii prostřednictvím kanálu podpory Vývojářské platformy
- Uveďte: navrhované ID kategorie, zobrazovaný název a odůvodnění s alespoň 3 stávajícími nebo plánovanými aplikacemi
- Posouzení trvá 5–10 pracovních dnů
- Vlastní/standardní kategorie bez předchozího schválení budou zamítnuty
Příloha B: Referenční seznam systémových portů
Následující porty jsou vyhrazeny systémem TOS a aplikace je nesmějí používat:
| Port | Služba |
|---|---|
| 22 | SSH |
| 80 | HTTP (TOS Web) |
| 443 | HTTPS |
| 445 | SMB |
| 3306 | MySQL |
| 5050 | TOS Daemon (interní systémový servisní port; pro aplikace zakázán) |
| 5432 | PostgreSQL |
| 6379 | Redis |
| 8181 | TOS Nginx (Web UI) |
| 8443 | TOS HTTPS |
Doporučený rozsah portů pro aplikace: 8000–19999 (kromě portů, které již zabírají nainstalované aplikace). Pokud jsou porty v doporučeném rozsahu obsazené, můžete použít 49152–65535 (rozsah dynamických portů), ale musí být explicitně deklarován v konfiguraci.
Příloha C: Systémové adresáře TOS
| Cesta | Popis |
|---|---|
/Volume*/@apps/<appid>/ | Instalační adresář aplikace (nevložené aplikace) |
/Volume*/@apps/<appid>/data/ | Běhová data aplikace (mezipaměti, dočasné soubory) |
/Volume*/@apps/<appid>/logs/ | Protokoly aplikace |
/Volume*/DockerAppData/<appid>/ | Data aplikace Docker (konfigurace a obchodní data) |
/usr/local/system_app_data/<appid>/ | Adresář systémově vložených aplikací (pouze pro vestavěné aplikace) |
/etc/systemd/system/<appid>.service | Soubor služby systemd |
Poznámka:
*v/Volume*/představuje číslo svazku (např. Volume1, Volume2) zvolené uživatelem při instalaci.
- U nevložených aplikací (oficiálních i třetích stran) jsou všechny soubory uloženy pod
/Volume*/@apps/<appid>/.- Systémově vložené aplikace (např. GlobalSearch, StorageManager) sídlí na systémovém disku v
/usr/local/system_app_data/.- Data aplikací Docker se ukládají samostatně pod
/Volume*/DockerAppData/<appid>/prostřednictvím připojení svazků.
Příloha D: Systémové cíle systemd v TOS
| Cíl | Popis |
|---|---|
multi-user.target | Cíl služeb aplikací TOS (všechny služby aplikací musí používat tento cíl jako WantedBy) |
default.target | Výchozí spouštěcí cíl systému (nepoužívejte pro služby aplikací; místo toho použijte multi-user.target) |
Příloha E: Matice kompatibility
| Verze TOS | Základní systém | glibc | Python3 | Docker | Node.js |
|---|---|---|---|---|---|
| TOS 7.0 | Kompatibilní s Ubuntu 22.04 | 2.35 | 3.10 | 20.10+ | 18.x |
| TOS 7.x | Kompatibilní s Ubuntu 22.04 | 2.35 | 3.10 | 20.10+ (nebo vyšší) | 18.x (nebo vyšší) |
Poznámka: Dílčí verze řady TOS 7.x budou udržovat kompatibilitu s TOS 7.0. Aplikace vyvinuté pro TOS 7.0 poběží bez dalšího přizpůsobení. Nejnovější podrobnosti specifické pro verze najdete v oficiálních poznámkách k vydání TOS nebo na Vývojářské platformě.
Příloha F: Rychlá šablona jazykového souboru
[zh-cn]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[zh-hk]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[en-us]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[fr-fr]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[de-de]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[it-it]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[es-es]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[hu-hu]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[ja-jp]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[ko-kr]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[pl-pl]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[ru-ru]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[tr-tr]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
[pt-pt]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""
Příloha G: API sdílených složek
# Create a shared folder for the app
ter_share_add -name <folder_name> -owner <username>
# Example
ter_share_add -name myapp-data -owner myapp
Příloha H: Kontrolní seznam migrace při upgradu
Použijte tento kontrolní seznam při upgradu aplikace na novou hlavní verzi:
- Migrační skripty dat zpracovávají formáty předchozí verze
- Konfigurační soubory jsou před úpravou zazálohovány
- Nové závislosti jsou deklarovány v DEBIAN/control
- Soubory služeb jsou aktualizovány (pokud je to nutné)
- Čísla verzí jsou zvýšena v config.ini, DEBIAN/control a app.lang
- Změnový protokol/poznámky k vydání jsou aktualizovány
- Cesta upgradu otestována: instalace staré verze → přidání dat → upgrade → ověření dat
- Cesta návratu otestována: downgrade nebo obnovení ze zálohy
- Kontrolní součty SHA-256 přegenerovány
Příloha I: Šablona README.md
# <App Name>
## Overview
A brief description of the app and its purpose.
## Features
- Feature 1
- Feature 2
- Feature 3
## Installation
1. Requirements: TOS 7.0+, [other dependencies]
2. Install from TOS App Center
3. Initial configuration steps
## Usage
How to access and use the app:
1. Access URL: `http://<your-nas-ip>:<port>`
2. Default credentials: [if applicable]
3. Key settings
## Permissions
| Permission | Rationale |
|---|---|
| Network: port XXXX | [rationale] |
| File system: /path/to/data | [rationale] |
| User: <appid> | Isolated service execution |
## Configuration
Key configuration options and their defaults.
## Ports
| Port | Protocol | Purpose |
|---|---|---|
| XXXX | TCP | [purpose] |
## Support
- Documentation: [link]
- Issue tracker: [link]
- Community: [link]
## Changelog
### v1.0.0 (YYYY-MM-DD)
- Initial release
## License
[License type]
Příloha J: Kompletní šablony konfiguračních souborů
Kompletní ke stažení šablony konfiguračních souborů pro všechny typy aplikací jsou k dispozici na TOS Developer Platform:
- Šablona
config.ini(Deb WebUI Internal, Deb WebUI External, Deb No UI, Docker) - Šablona
app.lang(rychlá šablona pro 14 jazyků; viz Příloha F) - Šablona souboru jednotky systemd (s posílením zabezpečení)
- Šablona DEBIAN/control (jeden balíček, duální balíček)
- Šablony skriptů životního cyklu (preinst, postinst, prerm, postrm)
- Šablona konfigurace nginx
- Šablona docker-compose.yml
- Šablona CI/CD pro GitHub Actions
Příloha K: Běžné důvody zamítnutí a příklady oprav
| Důvod zamítnutí | Chybný příklad | Správná oprava |
|---|---|---|
| Komentáře v config.ini | // this is a comment v JSON | Odstraňte všechny komentáře; JSON komentáře nepodporuje |
| Jednoduché uvozovky v JSON | 'version': '1.0.0' | Použijte dvojité uvozovky: "version": "1.0.0" |
| Koncová čárka | "beta": false,} (čárka u posledního pole) | Odstraňte koncovou čárku za posledním polem |
| Pevně zakódovaná IP | "path": "http://192.168.1.100:8080" | Použijte zástupný symbol: "path": "http://${ip}:8080" |
| Chybějící jazyky | app.lang má pouze 12 jazyků | Přidejte všech 14 požadovaných jazykových sekcí |
| root v systemd | User=root v souboru služby | Použijte vyhrazeného uživatele: User=<appid> |
| Privilegovaný režim Docker | privileged: true v compose | Odstraňte; použijte jemnozrnné capabilities |
| Chybějící kontrolní součet | Není předložen soubor .sha256 | Spusťte sha256sum <file> > <file>.sha256 |
| Verze nezvýšena | v1.0.0 → v1.0.0 (stejná verze) | Zvyšte verzi: v1.0.0 → v1.0.1 |
Příloha L: Terminologie a definice
| Termín | Definice | AKA |
|---|---|---|
| ID aplikace | Globálně jedinečný identifikátor aplikace; nastavuje se v config.ini.id | app_id, appid, id |
| Systémové ID | Název jednotky služby systemd; nastavuje se v config.ini.system_id | system_id, název služby |
| Název balíčku | Název balíčku Debian; nastavuje se v poli Package v DEBIAN/control | package, název deb balíčku |
| Režim duálního balíčku | Dva deb balíčky v jednom archivu tar.gz — deb datový balíček (obsahující konfiguraci platformy TOS) a deb zdrojový balíček (obsahující binárky aplikace). | Mechanismus duálního balíčku |
| Datový balíček | Datový balíček konfigurace aplikace rozpoznatelný systémem TOS, zkráceně deb datový balíček | Datový balíček aplikace, balíček metadat |
| Zdrojový balíček | Hlavní deb balíček se spustitelnou aplikací, zkráceně deb zdrojový balíček | Instalační balíček aplikace, binární balíček |
| Režim jednoho balíčku | Vývoj přímo podle specifikace TOS 7.0, integrace všech souborů do jednoho deb balíčku | Mechanismus jednoho balíčku |
| WebUI interní otevírání | Frontend aplikace se otevírá v rámci desktopu TOS jako iframe | režim iframe, vložený režim |
| WebUI externí otevírání | Frontend aplikace se otevírá v nové kartě prohlížeče | Režim nové karty, externí režim |
| Služba bez UI | Aplikace bez grafického rozhraní; služba démona na pozadí | Headless služba, démon |
| Minimální verze TOS | Minimální verze TOS požadovaná aplikací; nastavuje se v poli low_version v config.ini. | Min. verze TOS, požadavek na verzi TOS |
Příloha M: Správa beta aplikací
| Pravidlo | Popis |
|---|---|
| Rozsah viditelnosti | Beta aplikace jsou viditelné pouze pro uživatele, kteří se přihlásili k beta testování |
| Řízení viditelnosti | Nastavte "beta": true v config.ini; platforma automaticky omezí viditelnost |
| Proces dokončení | Pro dokončení beta fáze: nastavte "beta": false a zvyšte číslo verze. Řetězec verze by měl dodržovat standardní SemVer (nepoužívejte beta přípony) |
| Zakázané chování | Beta aplikace nesmějí být distribuovány jako produkční vydání; zavádění uživatelů ohledně beta stavu povede k zamítnutí |
| Vypršení a stažení z nabídky | Beta aplikace neaktualizované po dobu 90 dnů mohou být automaticky staženy z nabídky |
| Číslo verze | Použijte standardní SemVer s polem "beta": true; nepoužívejte přípony řetězce verze jako -beta, -rc |
Tento dokument je oficiální globální specifikací pro vývoj a zveřejňování aplikací TOS7. Specifikace bude průběžně aktualizována s iteracemi verzí TOS7. Vývojáři by se měli řídit nejnovější verzí na Vývojářské platformě.