raijin-server 0.2.3__py3-none-any.whl → 0.2.4__py3-none-any.whl

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.
@@ -25,6 +25,49 @@ from raijin_server.modules import (
25
25
  )
26
26
 
27
27
 
28
+ def _cert_manager_install_only(ctx: ExecutionContext) -> None:
29
+ """Wrapper para instalar cert-manager sem interação."""
30
+ if not cert_manager.install_only(ctx):
31
+ raise RuntimeError("Falha na instalação do cert-manager")
32
+
33
+ # Cria issuer HTTP01 padrão para staging (teste) e produção
34
+ # O usuário pode criar issuers adicionais depois com 'raijin-server cert install'
35
+ email = os.environ.get("RAIJIN_ACME_EMAIL", "")
36
+ if email and "@" in email:
37
+ typer.secho("\n📜 Criando ClusterIssuers padrão...", fg=typer.colors.CYAN)
38
+
39
+ # Cria issuer de staging (para testes)
40
+ cert_manager.create_issuer(
41
+ ctx,
42
+ name="letsencrypt-staging",
43
+ email=email,
44
+ challenge_type="http01",
45
+ staging=True,
46
+ ingress_class="traefik",
47
+ )
48
+
49
+ # Cria issuer de produção
50
+ cert_manager.create_issuer(
51
+ ctx,
52
+ name="letsencrypt-prod",
53
+ email=email,
54
+ challenge_type="http01",
55
+ staging=False,
56
+ ingress_class="traefik",
57
+ )
58
+
59
+ typer.secho("✓ ClusterIssuers 'letsencrypt-staging' e 'letsencrypt-prod' criados", fg=typer.colors.GREEN)
60
+ else:
61
+ typer.secho(
62
+ "ℹ Para criar ClusterIssuers automaticamente, defina RAIJIN_ACME_EMAIL",
63
+ fg=typer.colors.YELLOW,
64
+ )
65
+ typer.secho(
66
+ " Exemplo: export RAIJIN_ACME_EMAIL=admin@seudominio.com",
67
+ fg=typer.colors.YELLOW,
68
+ )
69
+
70
+
28
71
  # Ordem de execucao dos modulos para instalacao completa
29
72
  # Modulos marcados com skip_env podem ser pulados via variavel de ambiente
30
73
  INSTALL_SEQUENCE = [
@@ -36,7 +79,7 @@ INSTALL_SEQUENCE = [
36
79
  ("firewall", firewall.run, "Firewall UFW", None),
37
80
  ("kubernetes", kubernetes.run, "Cluster Kubernetes (kubeadm)", None),
38
81
  ("calico", calico.run, "CNI Calico + NetworkPolicy", None),
39
- ("cert_manager", cert_manager.run, "cert-manager + ClusterIssuer ACME", None),
82
+ ("cert_manager", _cert_manager_install_only, "cert-manager (instalacao base)", None),
40
83
  ("secrets", secrets.run, "Sealed-Secrets + External-Secrets", None),
41
84
  ("prometheus", prometheus.run, "Monitoramento Prometheus", None),
42
85
  ("grafana", grafana.run, "Dashboards Grafana", None),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: raijin-server
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Summary: CLI para automacao de setup e hardening de servidores Ubuntu Server.
5
5
  Home-page: https://example.com/raijin-server
6
6
  Author: Equipe Raijin
@@ -81,6 +81,36 @@ source .venv/bin/activate
81
81
  python -m pip install -e .
82
82
  ```
83
83
 
84
+ ### Instalação em Produção (Recomendado)
85
+
86
+ Para servidores em produção, use um venv isolado e execute com sudo preservando o ambiente:
87
+
88
+ ```bash
89
+ # 1. Sair do venv atual (se estiver ativo)
90
+ deactivate
91
+
92
+ # 2. (Opcional) Remover venv antigo
93
+ rm -rf ~/.venvs/raijin
94
+
95
+ # 3. Criar venv novo
96
+ python3 -m venv ~/.venvs/raijin
97
+ source ~/.venvs/raijin/bin/activate
98
+ pip install -U pip setuptools
99
+
100
+ # 4. Instalar a versão mais recente
101
+ pip install -U raijin-server
102
+
103
+ # 5. Rodar usando root preservando o venv
104
+ sudo -E ~/.venvs/raijin/bin/raijin-server --version
105
+ sudo -E ~/.venvs/raijin/bin/raijin-server validate
106
+ sudo -E ~/.venvs/raijin/bin/raijin-server full-install
107
+
108
+ # 6. Para sair do venv quando terminar
109
+ deactivate
110
+ ```
111
+
112
+ > **Nota**: O `-E` no sudo preserva as variáveis de ambiente, garantindo que o Python use o venv correto mesmo como root.
113
+
84
114
  ## Uso rapido
85
115
 
86
116
  ### Validar Sistema
@@ -1,17 +1,17 @@
1
- raijin_server/__init__.py,sha256=AKDS9uS_9UXF-3BZWSJvcQdgvkhbsxMs1o-P7R5xBE4,94
2
- raijin_server/cli.py,sha256=ZgaSkXwXaND7HHeySjIn4GEmTVTqUDttUfqXJ9yZV1E,16772
1
+ raijin_server/__init__.py,sha256=7-69Vj-HYrv98hWrKmwDqDQ-ehtTqJebx1JeP4St6Q4,94
2
+ raijin_server/cli.py,sha256=PfuIXc-pw1yZtJzCrxDVSWSsPAVBt9wqZBF-dWh6mwo,19274
3
3
  raijin_server/config.py,sha256=Dta2CS1d6RgNiQ84P6dTXk98boFrjzuvhs_fCdlm0I4,4810
4
- raijin_server/healthchecks.py,sha256=-mQq-dGZ2id16wvPmiTPjDHw14PBwz_i8AXi307V38k,12411
4
+ raijin_server/healthchecks.py,sha256=BJyWyUDtEswEblvGwWMejtMnsUb8kJcULVdS9iycrcc,14565
5
5
  raijin_server/utils.py,sha256=oQM-NGL_kmlNZejFvxXk85MI_WkcxNfwaw5LeAsKUFU,11476
6
6
  raijin_server/validators.py,sha256=qOZMHgwjHogVf17UPlxfUCpQd9qAGQW7tycd8mUvnEs,9404
7
7
  raijin_server/modules/__init__.py,sha256=e_IbkhLGPcF8to9QUmIESP6fpcTOYcIhaXLKIvqRJMY,920
8
- raijin_server/modules/apokolips_demo.py,sha256=gMUpYNaO0V20KoNa4ljyA1W9HJbY__O9AEO64NuWGhE,12365
8
+ raijin_server/modules/apokolips_demo.py,sha256=8ltsXRbVDwlDwLMIvh02NG-FeAfBWw_v6lh7IGOyNqs,13725
9
9
  raijin_server/modules/bootstrap.py,sha256=oVIGNRW_JbgY8zXNHGAIP0vGbbHNHyQexthxo5zhbcw,9762
10
10
  raijin_server/modules/calico.py,sha256=a8N7YYv7NoaspPKdhRtwHy3V2mM4cP5xA1H8BwslB18,4139
11
- raijin_server/modules/cert_manager.py,sha256=bSv5CRbPlH3DHWHBqUNTKVh0C973E4XC8WzGieOHh3A,4882
11
+ raijin_server/modules/cert_manager.py,sha256=3aXK2ivh0eCFLMllpWjUWS36UA3sWplP40daQRfWv14,34393
12
12
  raijin_server/modules/essentials.py,sha256=2xUXCyCQtFGd2DnCKV81N1R6bEJqH8zaet8mLovtQ1I,689
13
13
  raijin_server/modules/firewall.py,sha256=h6AISqiZeTinVT7BjmQIS872qRAFZJLg7meqlth3cfw,757
14
- raijin_server/modules/full_install.py,sha256=Mk_SHBrtL4zgjgd2shUuhp4fyDIPdlBVZtC5t8x-1vU,5908
14
+ raijin_server/modules/full_install.py,sha256=aR3yOuD7y0KLI20eMrxuFBNrWWn7JMpI4HFKNizEF3o,7464
15
15
  raijin_server/modules/grafana.py,sha256=zxYpWBM-fD8vTgoJ2Hmb9P66wz_JuiidO6_cGK3jG30,1809
16
16
  raijin_server/modules/hardening.py,sha256=4hz3ifkMhPlXa2n7gPxN0gitQgzALZ-073vuU3LM4RI,1616
17
17
  raijin_server/modules/harness.py,sha256=dhZ89YIhlkuxiRU1deN6wXVWnXm0xeI03PwYf_qgfak,1527
@@ -36,9 +36,9 @@ raijin_server/scripts/checklist.sh,sha256=j6E0Kmk1EfjLvKK1VpCqzXJAXI_7Bm67LK4ndy
36
36
  raijin_server/scripts/install.sh,sha256=IZOTujOSGmKpznwgL59picsQNVzYkai6FtfFS3Klf34,3908
37
37
  raijin_server/scripts/log_size_metric.sh,sha256=rC2Ck4xnYVJV4Qymu24-indC8bkzfZs4FBqqxGPRl1I,1143
38
38
  raijin_server/scripts/pre-deploy-check.sh,sha256=naPUgKjnKgsh-eGDH2623C7zcr9VjDEw1H0lfYaXW8c,4853
39
- raijin_server-0.2.3.dist-info/licenses/LICENSE,sha256=kJsMCjOiRZE0AQNtxWqBa32z9kMAaF4EUxyHj3hKaJo,1105
40
- raijin_server-0.2.3.dist-info/METADATA,sha256=Bh7AicqZXP3kLYhHxgf1uB3R4PGI4hcC8AYaDAaUg6A,16941
41
- raijin_server-0.2.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
42
- raijin_server-0.2.3.dist-info/entry_points.txt,sha256=3ZvxDX4pvcjkIRsXAJ69wIfVmKa78LKo-C3QhqN2KVM,56
43
- raijin_server-0.2.3.dist-info/top_level.txt,sha256=Yz1xneCRtsZOzbPIcTAcrSxd-1p80pohMXYAZ74dpok,14
44
- raijin_server-0.2.3.dist-info/RECORD,,
39
+ raijin_server-0.2.4.dist-info/licenses/LICENSE,sha256=kJsMCjOiRZE0AQNtxWqBa32z9kMAaF4EUxyHj3hKaJo,1105
40
+ raijin_server-0.2.4.dist-info/METADATA,sha256=4X4baNp5EyOCEl916XlHFbXtd25KWwhtwPky5nzT0lU,17772
41
+ raijin_server-0.2.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
42
+ raijin_server-0.2.4.dist-info/entry_points.txt,sha256=3ZvxDX4pvcjkIRsXAJ69wIfVmKa78LKo-C3QhqN2KVM,56
43
+ raijin_server-0.2.4.dist-info/top_level.txt,sha256=Yz1xneCRtsZOzbPIcTAcrSxd-1p80pohMXYAZ74dpok,14
44
+ raijin_server-0.2.4.dist-info/RECORD,,