ingress.yaml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497
  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 = 'POST') {
  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 = 'OPTIONS') {
  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. add_header 'Access-Control-Max-Age' 1728000;
  343. add_header 'Content-Type' 'text/plain; charset=utf-8';
  344. add_header 'Content-Length' 0;
  345. return 204;
  346. }
  347. spec:
  348. tls:
  349. - hosts:
  350. - evil.dodges.it
  351. secretName: evil-le-secret
  352. rules:
  353. - host: evil.dodges.it
  354. http:
  355. paths:
  356. - path: /
  357. pathType: Prefix
  358. backend:
  359. service:
  360. name: evil
  361. port:
  362. number: 80
  363. ingressClassName: nginx
  364. ---
  365. apiVersion: networking.k8s.io/v1
  366. kind: Ingress
  367. metadata:
  368. name: nc-ingress
  369. annotations:
  370. cert-manager.io/cluster-issuer: "letsencrypt"
  371. acme.cert-manager.io/http01-edit-in-place: "true"
  372. nginx.org/client-max-body-size: "500m"
  373. nginx.org/proxy-connect-timeout: "60s"
  374. nginx.org/proxy-read-timeout: "60s"
  375. nginx.org/hsts: "False"
  376. # Uncomment to allow solving HTTP01 challenge
  377. ingress.kubernetes.io/ssl-redirect: "true"
  378. nginx.org/redirect-to-https: "false"
  379. spec:
  380. tls:
  381. - hosts:
  382. - nc.dodges.it
  383. secretName: nc-le-secret
  384. rules:
  385. - host: nc.dodges.it
  386. http:
  387. paths:
  388. - path: /
  389. pathType: Prefix
  390. backend:
  391. service:
  392. name: nc
  393. port:
  394. number: 8080
  395. ingressClassName: nginx
  396. ---
  397. apiVersion: networking.k8s.io/v1
  398. kind: Ingress
  399. metadata:
  400. name: gradewhisperer-ingress
  401. annotations:
  402. cert-manager.io/cluster-issuer: "letsencrypt"
  403. acme.cert-manager.io/http01-edit-in-place: "true"
  404. nginx.org/client-max-body-size: "500m"
  405. nginx.org/proxy-connect-timeout: "60s"
  406. nginx.org/proxy-read-timeout: "60s"
  407. nginx.org/hsts: "False"
  408. # Uncomment to allow solving HTTP01 challenge
  409. ingress.kubernetes.io/ssl-redirect: "true"
  410. nginx.org/redirect-to-https: "false"
  411. spec:
  412. tls:
  413. - hosts:
  414. - gradewhisperer.dodges.it
  415. secretName: gradewhisperer-le-secret
  416. rules:
  417. - host: gradewhisperer.dodges.it
  418. http:
  419. paths:
  420. - path: /
  421. pathType: Prefix
  422. backend:
  423. service:
  424. name: gradewhisperer
  425. port:
  426. number: 80
  427. ingressClassName: nginx
  428. ---
  429. apiVersion: networking.k8s.io/v1
  430. kind: Ingress
  431. metadata:
  432. name: osmedeus-ingress
  433. annotations:
  434. cert-manager.io/cluster-issuer: "letsencrypt"
  435. acme.cert-manager.io/http01-edit-in-place: "true"
  436. nginx.org/client-max-body-size: "500m"
  437. nginx.org/proxy-connect-timeout: "60s"
  438. nginx.org/proxy-read-timeout: "60s"
  439. # Uncomment to allow solving HTTP01 challenge
  440. nginx.org/hsts: "True"
  441. # ingress.kubernetes.io/ssl-redirect: "false"
  442. # nginx.org/redirect-to-https: "false"
  443. # Upstream uses HTTPS, so connect in HTTPS.
  444. nginx.org/ssl-services: "osmedeus"
  445. spec:
  446. tls:
  447. - hosts:
  448. - osmedeus.dodges.it
  449. secretName: osmedeus-le-secret
  450. rules:
  451. - host: osmedeus.dodges.it
  452. http:
  453. paths:
  454. - path: /
  455. pathType: Prefix
  456. backend:
  457. service:
  458. name: osmedeus
  459. port:
  460. number: 8000
  461. ingressClassName: nginx
  462. ---
  463. apiVersion: networking.k8s.io/v1
  464. kind: Ingress
  465. metadata:
  466. name: photoprism-ingress
  467. namespace: photoprism
  468. annotations:
  469. cert-manager.io/cluster-issuer: "letsencrypt"
  470. acme.cert-manager.io/http01-edit-in-place: "true"
  471. nginx.org/client-max-body-size: "500m"
  472. nginx.org/proxy-connect-timeout: "60s"
  473. nginx.org/proxy-read-timeout: "60s"
  474. # Uncomment to allow solving HTTP01 challenge
  475. nginx.org/hsts: "false"
  476. ingress.kubernetes.io/ssl-redirect: "false"
  477. nginx.org/redirect-to-https: "false"
  478. spec:
  479. tls:
  480. - hosts:
  481. - pics.dodges.it
  482. secretName: photoprism-le-secret
  483. rules:
  484. - host: pics.dodges.it
  485. http:
  486. paths:
  487. - path: /
  488. pathType: Prefix
  489. backend:
  490. service:
  491. name: photoprism
  492. port:
  493. number: 2342
  494. ingressClassName: nginx