# Bases ## Fondamentaux - [x] [Setup DNS, OS, ...](./00_dns_os_etc.md) - [x] [docker & k3s](./01_docker_k3s.md) - [x] [main components](./02_main_components.md) - [x] setup volume, nfs, k8s provisioner - [x] setup postgres - [x] setup gitea - [ ] setup mail alert - [ ] setup gitea runners, Argo CD - [ ] setup hello world web app > [!NOTE] > Reference: [Arcodange _**Factory**_ Ansible Collection](/ansible/arcodange/factory/README.md) > [!IMPORTANT] > [duckdns.org](https://duckdns.org/) offre un sous domaine de duckdns.org gratuitement ainsi que des (sous-)sous domaines. Avec notre token on peut valider le challenge DNS de letsencrypt (pour du SSL gratuit) et configurer un cron job pour mettre à jour l'ip publique référencée par notre sous-domaine. ```mermaid %%{init: { 'logLevel': 'debug', 'theme': 'base' } }%% flowchart net[Internet] subgraph "Local Network (livebox)" net_rules{network rules} subgraph pi1 subgraph Docker_pi1[Docker] %%subgraph Traefik %% :web80 %% :websecure443 %%end gitea_action_runner end subgraph k3s_server[K3S Master] %% Traefik -.-> K3S_Traefik subgraph K3S_Traefik subdomain_git[/git.arcodange.duckdns.org/] end Pods[hello world web app] ArgoCD end end subgraph pi2 subgraph Docker_pi2[Docker] subgraph gitea_network subgraph postgres_service end subgraph gitea_service end end end subgraph HardDisk[Hard Disk] pg_data[pg_data partition] gitea_data[gitea_data partition] nfs_data[NFS_data partition] K3S_storage_provisioner --o nfs_data end subgraph k3s_agent[K3S Agent] Pods'[hello world web app] end end end postgres_service --o pg_data gitea_service --o gitea_data net -. "http(s)://(*.)arcodange.duckdns.org" .- net_rules -. :443/80 .-> K3S_Traefik %% Traefik subdomain_git -.-> gitea_service classDef k3s fill:#fff,stroke:#f0f,stroke-width:1px; classDef storage fill:#999,stroke:#000,stroke-width:2px; class HardDisk storage; class k3s_server,k3s_agent,K3S_storage_provisioner k3s; ```