Personal Homelab
1variable "bws_access_token" {
2 description = "Bitwarden Secrets CLI access token"
3 type = string
4 sensitive = true
5}
6
7variable "proxmox_config" {
8 description = "Proxmox credentials"
9 type = object({
10 host = string
11 password_secret_id = string
12 })
13}
14
15variable "containers_config" {
16 description = "Shared configuration"
17 type = object({
18 email = string
19 base_domain = string
20 ews_domain = string
21 })
22}
23
24variable "containers_secret_config" {
25 description = "Quadlet Ssecret"
26 type = map(string)
27 default = {
28 traefik_cf_dns_api_token = "e9e0f0f0-abc8-4bde-b05f-b292018179bb"
29 vmauth_traefik_bearer_token = "fba802cf-948f-4ff7-8965-b29f00e2da48"
30 vmauth_proxmox_bearer_token = "bb281df0-e5e8-4348-a92e-b2a300a30117"
31 oauth2_proxy_cookie_secret = "289c0832-27c2-463b-97b7-b29200a8cebd"
32 oauth2_proxy_client_secret = "afdb8ef2-a3d4-4a17-b839-b29200ab6f87"
33 pocket_id_encryption_key = "60f943d2-0a2a-49da-95f7-b3c60143ecbb"
34 pocket_id_maxmind_license_key = "08c549a4-bf48-4998-8cb0-b29200ac845d"
35 actual_budget_openid_client_secret = "5754702b-d9d5-4127-b5ab-b29200abdd6a"
36 open_webui_secret_key = "aeeb7cdd-d10e-41d4-abb4-b33300dabc1a"
37 open_webui_oauth_client_secret = "b595040b-a23a-44af-8bff-b29200ad6258"
38 open_webui_google_drive_api_key = "d24bf77b-622d-4ef0-88ae-b2b200d67ee1"
39 open_webui_anthropic_api_key = "104a349b-a4be-4d3a-9c0b-b2c700e64c9a"
40 open_webui_google_api_key = "3016f3ef-c14c-4f4c-8439-b2c700e62f21"
41 open_webui_openai_api_key = "24fd45e2-0fd3-42cd-8fd5-b2c700e66731"
42 karakeep_oauth_client_secret = "784d379b-bcaf-424f-bc77-b29500ff1be6"
43 karakeep_openai_api_key = "98f5ccdf-d4b1-4883-b4e3-b295010ba589"
44 meili_master_key = "a67874c5-95c2-4f7a-b335-b295010010e0"
45 nextauth_secret = "94b4b746-f005-46e0-b60a-b29501010c06"
46 immich_postgres_password = "386f1adc-878f-4755-a06b-b29700b15cd0"
47 immich_map_key = "b5735614-bc05-441d-a2e2-b29800d3b25c"
48 miniflux_postgres_password = "1c6a587e-9dda-47de-953a-b29a01697231"
49 miniflux_database_url = "456f8488-cdeb-4246-959d-b29a016be9ac"
50 miniflux_oauth2_client_secret = "3bb3cedd-1ee4-4624-b865-b29a016c2318"
51 pds_jwt_secret = "b9dfaefd-3083-4e2f-a23f-b29a017db774"
52 pds_admin_password = "00e810b5-6d8b-4342-8189-b29a017dca5e"
53 pds_plc_rotation_key_k256_private_key_hex = "e0825e62-8d49-4b4a-99cd-b29a017def90"
54 pds_email_smtp_url = "5a940d99-28cb-4792-9825-b29a017e11ad"
55 outline_secret_key = "501e040c-5574-4058-a0c0-b29d01010c09"
56 outline_utils_secret = "b032948f-bce3-46bb-bd26-b29d01012dde"
57 outline_database_url = "5887f243-6332-4041-8457-b29d0104be2e"
58 outline_postgres_password = "4212e3a7-acd3-4804-ac0e-b29d01015850"
59 outline_oidc_client_secret = "9c8cae9a-db6d-45d0-8cc0-b29d0101844c"
60 outline_smtp_password = "5fdbfb32-257e-4cc3-8b07-b29d01063ba6"
61 grafana_oauth2_client_secret = "697cf367-a80c-41f6-b975-b2a200a986d8"
62 glance_github_token = "de3353d8-09d9-4063-b513-b2a3008cc2c9"
63 tangled_knot_server_secret = "a58caac0-1c07-4152-89e6-b2a900c8fe8f"
64 forward_info_bot_telegram_token = "f8eda775-f945-4eb8-b48a-b2b80092cf54"
65 restic_aws_access_key_id = "2743cf63-05ae-45b4-997f-b2c700dfabef"
66 restic_aws_secret_access_key = "134279a9-b3ee-4309-ae9e-b2c700dfe86c"
67 restic_b2_account_id = "3e058bd3-e13d-4b6a-9d48-b2c700e00d62"
68 restic_b2_account_key = "ddc2f07b-47ca-49b2-ae41-b2c700e02f01"
69 restic_password = "52ce5eb2-98ae-4243-ba08-b2c700e04b7e"
70 opencloud_collabora_password = "bced1168-9741-4b8e-abf4-b2d4000e2c9e"
71 opencloud_smtp_password = "5e0889ac-3b11-4fc4-81ca-b2d400170e85"
72 simplex_smp_pass = "ebc8a3cb-4b85-44d6-b61c-b33800e45456"
73 simplex_xftp_pass = "c6feec9d-2622-4322-acbf-b338013f79e9"
74 tuwunel_registration_token = "92e470e2-c88e-43d3-ae0c-b3570039c4c9"
75 coturn_turn_shared_secret = "5b69585c-03e8-454f-94e0-b357000002d4"
76 matrix_postgres_password = "d2ea9e75-f3bc-4e3d-a07c-b37b0147a20a"
77 synapse_postgres_password = "2209bd8d-f6a7-43e0-afa8-b37a00bbfd2c"
78 synapse_registration_shared_secret = "9dab9863-5dac-4748-a1fc-b37a0145f7f1"
79 synapse_macaroon_secret_key = "cfa20ae3-8103-46be-a129-b37a014627aa"
80 synapse_form_secret = "c11840ef-11f0-40c7-a08e-b37a0146564f"
81 synapse_oidc_client_secret = "6e0f179f-631c-480c-b9ec-b37a0146e95c"
82 matrix_rtc_livekit_key = "5c336187-6139-413b-bbf1-b37a01588b03"
83 matrix_rtc_livekit_secret = "a24e0995-d297-4c23-849f-b37a0158a5d4"
84 matrix_authentication_service_postgres_password = "d2ea9e75-f3bc-4e3d-a07c-b37b0147a20a"
85 matrix_authentication_service_secret = "bcaa7f79-c9fc-4448-9c79-b37a016954f5"
86 matrix_authentication_service_secrets_encryption = "012d8da3-3f7c-471a-b9cb-b37b0001dc1b"
87 matrix_authentication_service_secrets_rsa_key = "c2c1d0d3-1c80-4c36-961e-b37b000049ca"
88 matrix_authentication_service_secrets_p256_key = "8a19b557-c518-43f7-90a8-b37b0000b7c6"
89 matrix_authentication_service_secrets_p384_key = "557701bc-7430-4dc8-98ae-b37b0000e3c1"
90 matrix_authentication_service_secrets_secp256k1_key = "a6624b6b-1f2c-4883-94dd-b37b00010dc9"
91 matrix_authentication_service_smtp_password = "e25452b1-480c-4581-b407-b37b00042943"
92 remnawave_jwt_auth_secret = "9fb99592-a129-4669-848f-b3b800f42a01"
93 remnawave_jwt_api_tokens_secret = "aaec18fb-81d8-4e22-9f14-b3b800f4539a"
94 remnawave_postgres_password = "940eafe8-28fb-49fb-bc60-b3b800f48af5"
95 remnawave_database_url = "53437e56-c71e-4887-bfd1-b3b800f50ea5"
96 remnawave_metrics_pass = "1cb78e43-698f-48db-a76d-b3b800fb7524"
97 remnawave_node_secret_key = "87cadb81-1969-4625-b57e-b3b80105ce9e"
98 remnawave_node_2_secret_key = "903369ff-bbc1-42a9-8461-b3b9017a0ab3"
99 remnawave_api_token = "a0b134ef-a7ee-4972-bae4-b3b9003e6788"
100 remnawave_xhttp_path = "23bd5525-ac0c-49db-bbd5-b3b90041b8ed"
101 }
102}
103
104variable "fcos_config" {
105 description = "Fedora CoreOS Configuration"
106 type = object({
107 hostname = string
108 ssh_keys = list(string)
109 root_ca = string
110
111 mac_address = string
112 ip = string
113 gateway = string
114 mask = string
115 nameserver = string
116
117 truenas_ip = string
118 truenas_iqn = string
119
120 # To sync configs afterwards
121 ssh_private_key_path = string
122 })
123}