ingress.yaml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502
  1. apiVersion: networking.k8s.io/v1
  2. kind: Ingress
  3. metadata:
  4. name: nas-ingress
  5. annotations:
  6. cert-manager.io/cluster-issuer: "letsencrypt"
  7. acme.cert-manager.io/http01-edit-in-place: "true"
  8. nginx.org/client-max-body-size: "500m"
  9. nginx.org/proxy-connect-timeout: "60s"
  10. nginx.org/proxy-read-timeout: "60s"
  11. nginx.org/hsts: "True"
  12. nginx.org/hsts-max-age: "15552000"
  13. # Uncomment to allow solving HTTP01 challenge
  14. ingress.kubernetes.io/ssl-redirect: "true"
  15. nginx.org/redirect-to-https: "false"
  16. spec:
  17. tls:
  18. - hosts:
  19. - nas.dodges.it
  20. secretName: nas-le-secret
  21. rules:
  22. - host: nas.dodges.it
  23. http:
  24. paths:
  25. - path: /
  26. pathType: Prefix
  27. backend:
  28. service:
  29. name: nas
  30. port:
  31. number: 80
  32. ingressClassName: nginx
  33. ---
  34. apiVersion: networking.k8s.io/v1
  35. kind: Ingress
  36. metadata:
  37. name: pihole-ingress
  38. annotations:
  39. cert-manager.io/cluster-issuer: "letsencrypt"
  40. acme.cert-manager.io/http01-edit-in-place: "true"
  41. nginx.org/client-max-body-size: "500m"
  42. nginx.org/proxy-connect-timeout: "60s"
  43. nginx.org/proxy-read-timeout: "60s"
  44. nginx.org/hsts: "True"
  45. nginx.org/hsts-max-age: "15552000"
  46. # Uncomment to allow solving HTTP01 challenge
  47. ingress.kubernetes.io/ssl-redirect: "true"
  48. nginx.org/redirect-to-https: "false"
  49. spec:
  50. tls:
  51. - hosts:
  52. - dns.dodges.it
  53. secretName: dns-le-secret
  54. rules:
  55. - host: dns.dodges.it
  56. http:
  57. paths:
  58. - path: /
  59. pathType: Prefix
  60. backend:
  61. service:
  62. name: pihole
  63. port:
  64. number: 80
  65. ingressClassName: nginx
  66. ---
  67. apiVersion: networking.k8s.io/v1
  68. kind: Ingress
  69. metadata:
  70. name: gogs-ingress
  71. annotations:
  72. cert-manager.io/cluster-issuer: "letsencrypt"
  73. acme.cert-manager.io/http01-edit-in-place: "true"
  74. nginx.org/client-max-body-size: "500m"
  75. nginx.org/proxy-connect-timeout: "60s"
  76. nginx.org/proxy-read-timeout: "60s"
  77. nginx.org/hsts: "True"
  78. nginx.org/hsts-max-age: "15552000"
  79. # Uncomment to allow solving HTTP01 challenge
  80. #ingress.kubernetes.io/ssl-redirect: "true"
  81. #nginx.org/redirect-to-https: "false"
  82. spec:
  83. tls:
  84. - hosts:
  85. - gogs.dodges.it
  86. secretName: gogs-le-secret
  87. rules:
  88. - host: gogs.dodges.it
  89. http:
  90. paths:
  91. - path: /
  92. pathType: Prefix
  93. backend:
  94. service:
  95. name: gogs
  96. port:
  97. number: 50001
  98. ingressClassName: nginx
  99. ---
  100. apiVersion: networking.k8s.io/v1
  101. kind: Ingress
  102. metadata:
  103. name: ng-ingress
  104. annotations:
  105. nginx.org/client-max-body-size: "4096m"
  106. nginx.org/proxy-connect-timeout: "500s"
  107. nginx.org/proxy-read-timeout: "500s"
  108. nginx.org/proxy-send-timeout: "500s"
  109. nginx.org/hsts: "True"
  110. nginx.org/hsts-max-age: "15552000"
  111. # Prevent nginx HTTP Server Detection
  112. nginx.org/server-tokens: "False"
  113. # Uncomment to allow solving HTTP01 challenge
  114. #ingress.kubernetes.io/ssl-redirect: "true"
  115. #nginx.org/redirect-to-https: "false"
  116. acme.cert-manager.io/http01-edit-in-place: "true"
  117. cert-manager.io/cluster-issuer: "letsencrypt"
  118. # Enable CalDAV and WebDAV to work. Might break ACME challenge?
  119. nginx.org/server-snippets: |
  120. location = /.well-known/carddav { return 301 /remote.php/dav/; }
  121. location = /.well-known/caldav { return 301 /remote.php/dav/; }
  122. fastcgi_buffers 64 4K;
  123. gzip on;
  124. gzip_vary on;
  125. gzip_comp_level 4;
  126. gzip_min_length 256;
  127. gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
  128. gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
  129. spec:
  130. tls:
  131. - hosts:
  132. - ng.dodges.it
  133. secretName: ng-le-secret
  134. rules:
  135. - host: ng.dodges.it
  136. http:
  137. paths:
  138. - path: /
  139. pathType: Prefix
  140. backend:
  141. service:
  142. name: nextcloud
  143. port:
  144. number: 50011
  145. ingressClassName: nginx
  146. ---
  147. apiVersion: networking.k8s.io/v1
  148. kind: Ingress
  149. metadata:
  150. name: db-ingress
  151. annotations:
  152. cert-manager.io/cluster-issuer: "letsencrypt"
  153. acme.cert-manager.io/http01-edit-in-place: "true"
  154. nginx.org/hsts: "True"
  155. nginx.org/hsts-max-age: "15552000"
  156. # Uncomment to allow solving HTTP01 challenge
  157. #ingress.kubernetes.io/ssl-redirect: "true"
  158. #nginx.org/redirect-to-https: "false"
  159. spec:
  160. tls:
  161. - hosts:
  162. - db.dodges.it
  163. secretName: db-le-secret
  164. rules:
  165. - host: db.dodges.it
  166. http:
  167. paths:
  168. - path: /
  169. pathType: Prefix
  170. backend:
  171. service:
  172. name: phpmyadmin
  173. port:
  174. number: 50003
  175. ingressClassName: nginx
  176. ---
  177. apiVersion: networking.k8s.io/v1
  178. kind: Ingress
  179. metadata:
  180. name: trt-ingress
  181. annotations:
  182. # Uncomment to allow solving HTTP01 challenge
  183. ingress.kubernetes.io/ssl-redirect: "true"
  184. nginx.org/redirect-to-https: "true"
  185. acme.cert-manager.io/http01-edit-in-place: "true"
  186. cert-manager.io/cluster-issuer: "letsencrypt"
  187. # nginx.org/basic-auth-secret: ""
  188. # nginx.org/basic-auth-secret: transmission-secret
  189. nginx.org/hsts: "true"
  190. nginx.org/hsts-max-age: "15552000"
  191. spec:
  192. tls:
  193. - hosts:
  194. - trt.dodges.it
  195. secretName: trt-le-secret
  196. rules:
  197. - host: trt.dodges.it
  198. http:
  199. paths:
  200. - path: /
  201. pathType: Prefix
  202. backend:
  203. service:
  204. name: transmission
  205. port:
  206. number: 9091
  207. ingressClassName: nginx
  208. ---
  209. apiVersion: networking.k8s.io/v1
  210. kind: Ingress
  211. metadata:
  212. name: lang-ingress
  213. annotations:
  214. cert-manager.io/cluster-issuer: "letsencrypt"
  215. acme.cert-manager.io/http01-edit-in-place: "true"
  216. nginx.org/client-max-body-size: "500m"
  217. nginx.org/proxy-connect-timeout: "60s"
  218. nginx.org/proxy-read-timeout: "60s"
  219. nginx.org/hsts: "True"
  220. nginx.org/hsts-max-age: "15552000"
  221. # Uncomment to allow solving HTTP01 challenge
  222. #ingress.kubernetes.io/ssl-redirect: "true"
  223. #nginx.org/redirect-to-https: "false"
  224. spec:
  225. tls:
  226. - hosts:
  227. - lang-dev.dodges.it
  228. secretName: lang-le-secret
  229. rules:
  230. - host: lang-dev.dodges.it
  231. http:
  232. paths:
  233. - path: /api
  234. pathType: Prefix
  235. backend:
  236. service:
  237. name: languagetandem
  238. port:
  239. number: 8000
  240. - path: /
  241. pathType: Prefix
  242. backend:
  243. service:
  244. name: languagetandem-fe
  245. port:
  246. number: 80
  247. ingressClassName: nginx
  248. ---
  249. apiVersion: networking.k8s.io/v1
  250. kind: Ingress
  251. metadata:
  252. name: homeassistant-ingress
  253. annotations:
  254. cert-manager.io/cluster-issuer: "letsencrypt"
  255. acme.cert-manager.io/http01-edit-in-place: "true"
  256. nginx.org/client-max-body-size: "500m"
  257. nginx.org/proxy-connect-timeout: "60s"
  258. nginx.org/proxy-read-timeout: "60s"
  259. nginx.org/hsts: "True"
  260. nginx.org/hsts-max-age: "15552000"
  261. # Uncomment to allow solving HTTP01 challenge
  262. nginx.org/redirect-to-https: "true"
  263. nginx.org/location-snippets: |
  264. proxy_set_header Upgrade $http_upgrade;
  265. proxy_set_header Connection "upgrade";
  266. spec:
  267. tls:
  268. - hosts:
  269. - ha.dodges.it
  270. secretName: ha-le-secret
  271. rules:
  272. - host: ha.dodges.it
  273. http:
  274. paths:
  275. - path: /
  276. pathType: Prefix
  277. backend:
  278. service:
  279. name: homeassistant
  280. port:
  281. number: 8123
  282. ingressClassName: nginx
  283. ---
  284. apiVersion: networking.k8s.io/v1
  285. kind: Ingress
  286. metadata:
  287. name: cyberchef-ingress
  288. annotations:
  289. cert-manager.io/cluster-issuer: "letsencrypt"
  290. acme.cert-manager.io/http01-edit-in-place: "true"
  291. nginx.org/client-max-body-size: "500m"
  292. nginx.org/proxy-connect-timeout: "60s"
  293. nginx.org/proxy-read-timeout: "60s"
  294. nginx.org/hsts: "True"
  295. nginx.org/hsts-max-age: "15552000"
  296. # Uncomment to allow solving HTTP01 challenge
  297. ingress.kubernetes.io/ssl-redirect: "true"
  298. nginx.org/redirect-to-https: "false"
  299. spec:
  300. tls:
  301. - hosts:
  302. - cc.dodges.it
  303. secretName: cc-le-secret
  304. rules:
  305. - host: cc.dodges.it
  306. http:
  307. paths:
  308. - path: /
  309. pathType: Prefix
  310. backend:
  311. service:
  312. name: cyberchef
  313. port:
  314. number: 80
  315. ingressClassName: nginx
  316. ---
  317. apiVersion: networking.k8s.io/v1
  318. kind: Ingress
  319. metadata:
  320. name: evil-ingress
  321. annotations:
  322. cert-manager.io/cluster-issuer: "letsencrypt"
  323. acme.cert-manager.io/http01-edit-in-place: "true"
  324. nginx.org/client-max-body-size: "500m"
  325. nginx.org/proxy-connect-timeout: "60s"
  326. nginx.org/proxy-read-timeout: "60s"
  327. nginx.org/hsts: "True"
  328. nginx.org/hsts-max-age: "15552000"
  329. # Uncomment to allow solving HTTP01 challenge
  330. ingress.kubernetes.io/ssl-redirect: "true"
  331. nginx.org/redirect-to-https: "false"
  332. nginx.org/location-snippets: |
  333. if ($request_method = 'GET') {
  334. add_header 'Access-Control-Allow-Origin' '*';
  335. add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT';
  336. add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
  337. }
  338. if ($request_method = 'POST') {
  339. add_header 'Access-Control-Allow-Origin' '*';
  340. add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT';
  341. add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
  342. }
  343. if ($request_method = 'OPTIONS') {
  344. add_header 'Access-Control-Allow-Origin' '*';
  345. add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT';
  346. add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
  347. add_header 'Access-Control-Max-Age' 1728000;
  348. add_header 'Content-Type' 'text/plain; charset=utf-8';
  349. add_header 'Content-Length' 0;
  350. return 204;
  351. }
  352. spec:
  353. tls:
  354. - hosts:
  355. - evil.dodges.it
  356. secretName: evil-le-secret
  357. rules:
  358. - host: evil.dodges.it
  359. http:
  360. paths:
  361. - path: /
  362. pathType: Prefix
  363. backend:
  364. service:
  365. name: evil
  366. port:
  367. number: 80
  368. ingressClassName: nginx
  369. ---
  370. apiVersion: networking.k8s.io/v1
  371. kind: Ingress
  372. metadata:
  373. name: nc-ingress
  374. annotations:
  375. cert-manager.io/cluster-issuer: "letsencrypt"
  376. acme.cert-manager.io/http01-edit-in-place: "true"
  377. nginx.org/client-max-body-size: "500m"
  378. nginx.org/proxy-connect-timeout: "60s"
  379. nginx.org/proxy-read-timeout: "60s"
  380. nginx.org/hsts: "False"
  381. # Uncomment to allow solving HTTP01 challenge
  382. ingress.kubernetes.io/ssl-redirect: "true"
  383. nginx.org/redirect-to-https: "false"
  384. spec:
  385. tls:
  386. - hosts:
  387. - nc.dodges.it
  388. secretName: nc-le-secret
  389. rules:
  390. - host: nc.dodges.it
  391. http:
  392. paths:
  393. - path: /
  394. pathType: Prefix
  395. backend:
  396. service:
  397. name: nc
  398. port:
  399. number: 8080
  400. ingressClassName: nginx
  401. ---
  402. apiVersion: networking.k8s.io/v1
  403. kind: Ingress
  404. metadata:
  405. name: gradewhisperer-ingress
  406. annotations:
  407. cert-manager.io/cluster-issuer: "letsencrypt"
  408. acme.cert-manager.io/http01-edit-in-place: "true"
  409. nginx.org/client-max-body-size: "500m"
  410. nginx.org/proxy-connect-timeout: "60s"
  411. nginx.org/proxy-read-timeout: "60s"
  412. nginx.org/hsts: "False"
  413. # Uncomment to allow solving HTTP01 challenge
  414. ingress.kubernetes.io/ssl-redirect: "true"
  415. nginx.org/redirect-to-https: "false"
  416. spec:
  417. tls:
  418. - hosts:
  419. - gradewhisperer.dodges.it
  420. secretName: gradewhisperer-le-secret
  421. rules:
  422. - host: gradewhisperer.dodges.it
  423. http:
  424. paths:
  425. - path: /
  426. pathType: Prefix
  427. backend:
  428. service:
  429. name: gradewhisperer
  430. port:
  431. number: 80
  432. ingressClassName: nginx
  433. ---
  434. apiVersion: networking.k8s.io/v1
  435. kind: Ingress
  436. metadata:
  437. name: osmedeus-ingress
  438. annotations:
  439. cert-manager.io/cluster-issuer: "letsencrypt"
  440. acme.cert-manager.io/http01-edit-in-place: "true"
  441. nginx.org/client-max-body-size: "500m"
  442. nginx.org/proxy-connect-timeout: "60s"
  443. nginx.org/proxy-read-timeout: "60s"
  444. # Uncomment to allow solving HTTP01 challenge
  445. nginx.org/hsts: "True"
  446. # ingress.kubernetes.io/ssl-redirect: "false"
  447. # nginx.org/redirect-to-https: "false"
  448. # Upstream uses HTTPS, so connect in HTTPS.
  449. nginx.org/ssl-services: "osmedeus"
  450. spec:
  451. tls:
  452. - hosts:
  453. - osmedeus.dodges.it
  454. secretName: osmedeus-le-secret
  455. rules:
  456. - host: osmedeus.dodges.it
  457. http:
  458. paths:
  459. - path: /
  460. pathType: Prefix
  461. backend:
  462. service:
  463. name: osmedeus
  464. port:
  465. number: 8000
  466. ingressClassName: nginx
  467. ---
  468. apiVersion: networking.k8s.io/v1
  469. kind: Ingress
  470. metadata:
  471. name: photoprism-ingress
  472. namespace: photoprism
  473. annotations:
  474. cert-manager.io/cluster-issuer: "letsencrypt"
  475. acme.cert-manager.io/http01-edit-in-place: "true"
  476. nginx.org/client-max-body-size: "500m"
  477. nginx.org/proxy-connect-timeout: "60s"
  478. nginx.org/proxy-read-timeout: "60s"
  479. # Uncomment to allow solving HTTP01 challenge
  480. nginx.org/hsts: "true"
  481. ingress.kubernetes.io/ssl-redirect: "true"
  482. nginx.org/redirect-to-https: "true"
  483. spec:
  484. tls:
  485. - hosts:
  486. - pics.dodges.it
  487. secretName: photoprism-le-secret
  488. rules:
  489. - host: pics.dodges.it
  490. http:
  491. paths:
  492. - path: /
  493. pathType: Prefix
  494. backend:
  495. service:
  496. name: photoprism
  497. port:
  498. number: 2342
  499. ingressClassName: nginx