From 19b277df945b96d027258a6bc0cd6513939ef13c Mon Sep 17 00:00:00 2001 From: Stavros Date: Sun, 26 Nov 2023 16:04:49 +0200 Subject: [PATCH] feat(app-store): add nginx (#1691) * feat(app-store): add nginx * refactor(nginx): change image --- README.md | 1 + apps/nginx/config.json | 18 +++++++++++++++ apps/nginx/docker-compose.yml | 35 +++++++++++++++++++++++++++++ apps/nginx/metadata/description.md | 3 +++ apps/nginx/metadata/logo.jpg | Bin 0 -> 14535 bytes 5 files changed, 57 insertions(+) create mode 100644 apps/nginx/config.json create mode 100644 apps/nginx/docker-compose.yml create mode 100644 apps/nginx/metadata/description.md create mode 100644 apps/nginx/metadata/logo.jpg diff --git a/README.md b/README.md index 30368126..08837cdc 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Netboot.xyz](https://github.com/netbootxyz/netboot.xyz) - Your favorite operating systems in one place! - [Netdata](https://github.com/netdata/netdata) - Open-source, real-time, performance and health monitoring. - [Nextcloud](https://github.com/nextcloud/server) - A safe home for all your data +- [Nginx](https://github.com/nginx/nginx) - A simple web server to test your tipi install - [Nitter](https://github.com/zedeus/nitter) - Alternative Twitter front-end - [NocoDB](https://github.com/nocodb/nocodb) - Open Source Airtable Alternative - [Node-RED](https://github.com/node-red/node-red) - Low-code programming for event-driven applications diff --git a/apps/nginx/config.json b/apps/nginx/config.json new file mode 100644 index 00000000..4421fd48 --- /dev/null +++ b/apps/nginx/config.json @@ -0,0 +1,18 @@ +{ + "name": "Nginx", + "available": true, + "port": 8754, + "exposable": true, + "id": "nginx", + "description": "Simple webserver to test your tipi install. An alternative to the hello-world app.", + "tipi_version": 1, + "version": "1.25.3", + "categories": ["utilities"], + "short_desc": "Open-source simple and fast web server.", + "author": "nginx", + "source": "https://github.com/nginx/nginx", + "website": "https://www.nginx.com/", + "form_fields": [], + "supported_architectures": ["arm64", "amd64"] + } + \ No newline at end of file diff --git a/apps/nginx/docker-compose.yml b/apps/nginx/docker-compose.yml new file mode 100644 index 00000000..44ccde2c --- /dev/null +++ b/apps/nginx/docker-compose.yml @@ -0,0 +1,35 @@ +version: "3.9" +services: + nginx: + image: nginx:1.25.3 + container_name: nginx + restart: unless-stopped + ports: + - ${APP_PORT}:80 + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.nginx-web-redirect.redirectscheme.scheme: https + traefik.http.services.nginx.loadbalancer.server.port: 80 + # Web + traefik.http.routers.nginx-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.nginx-insecure.entrypoints: web + traefik.http.routers.nginx-insecure.service: nginx + traefik.http.routers.nginx-insecure.middlewares: nginx-web-redirect + # Websecure + traefik.http.routers.nginx.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.nginx.entrypoints: websecure + traefik.http.routers.nginx.service: nginx + traefik.http.routers.nginx.tls.certresolver: myresolver + # Local domain + traefik.http.routers.nginx-local-insecure.rule: Host(`nginx.${LOCAL_DOMAIN}`) + traefik.http.routers.nginx-local-insecure.entrypoints: web + traefik.http.routers.nginx-local-insecure.service: nginx + traefik.http.routers.nginx-local-insecure.middlewares: nginx-web-redirect + # Local domain secure + traefik.http.routers.nginx-local.rule: Host(`nginx.${LOCAL_DOMAIN}`) + traefik.http.routers.nginx-local.entrypoints: websecure + traefik.http.routers.nginx-local.service: nginx + traefik.http.routers.nginx-local.tls: true \ No newline at end of file diff --git a/apps/nginx/metadata/description.md b/apps/nginx/metadata/description.md new file mode 100644 index 00000000..9836fdd6 --- /dev/null +++ b/apps/nginx/metadata/description.md @@ -0,0 +1,3 @@ +## Nginx + +A simple and lightweight web server to test that your tipi install works. \ No newline at end of file diff --git a/apps/nginx/metadata/logo.jpg b/apps/nginx/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..90fcfc6ccd403c737aa65ad0eee0d59e1cda5253 GIT binary patch literal 14535 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 z