diff --git a/apps/getashell/config.json b/apps/getashell/config.json new file mode 100644 index 00000000..943a2fe6 --- /dev/null +++ b/apps/getashell/config.json @@ -0,0 +1,18 @@ +{ + "$schema": "../schema.json", + "name": "Get A Shell", + "available": true, + "exposable": true, + "port": 8281, + "id": "getashell", + "tipi_version": 1, + "version": "v0.1.1", + "categories": ["utilities"], + "description": "Simple web ui to create ssh shells for testing.", + "short_desc": "SSH shells from a Web UI", + "author": "steveiliop56", + "source": "https://github.com/steveiliop56/getashell", + "form_fields": [], + "supported_architectures": ["arm64", "amd64"] + } + \ No newline at end of file diff --git a/apps/getashell/docker-compose.yml b/apps/getashell/docker-compose.yml new file mode 100644 index 00000000..6a0d20fc --- /dev/null +++ b/apps/getashell/docker-compose.yml @@ -0,0 +1,38 @@ +version: "3.9" +services: + getashell: + image: ghcr.io/steveiliop56/getashell:v0.1.1 + container_name: getashell + restart: unless-stopped + volumes: + - ${APP_DATA_DIR}/data/:/app/data + - /var/run/docker.sock:/var/run/docker.sock:ro + ports: + - ${APP_PORT}:3000 + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.getashell-web-redirect.redirectscheme.scheme: https + traefik.http.services.getashell.loadbalancer.server.port: 2368 + # Web + traefik.http.routers.getashell-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.getashell-insecure.entrypoints: web + traefik.http.routers.getashell-insecure.service: getashell + traefik.http.routers.getashell-insecure.middlewares: getashell-web-redirect + # Websecure + traefik.http.routers.getashell.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.getashell.entrypoints: websecure + traefik.http.routers.getashell.service: getashell + traefik.http.routers.getashell.tls.certresolver: myresolver + # Local domain + traefik.http.routers.getashell-local-insecure.rule: Host(`getashell.${LOCAL_DOMAIN}`) + traefik.http.routers.getashell-local-insecure.entrypoints: web + traefik.http.routers.getashell-local-insecure.service: getashell + traefik.http.routers.getashell-local-insecure.middlewares: getashell-web-redirect + # Local domain secure + traefik.http.routers.getashell-local.rule: Host(`getashell.${LOCAL_DOMAIN}`) + traefik.http.routers.getashell-local.entrypoints: websecure + traefik.http.routers.getashell-local.service: getashell + traefik.http.routers.getashell-local.tls: true \ No newline at end of file diff --git a/apps/getashell/metadata/description.md b/apps/getashell/metadata/description.md new file mode 100644 index 00000000..b371350f --- /dev/null +++ b/apps/getashell/metadata/description.md @@ -0,0 +1,8 @@ +## Get A Shell 🐚 + +Have you ever wanted to just spin up a quick server than you can ssh into to test something real quick? Well with get a shell +you can just spin up the ui select a distro and click _Get me a shell!_ and 💥 you have an ssh server with your specified distro. No need to spin up vms, run commands or anything harder than a click! + +![Preview](https://github.com/steveiliop56/getashell/blob/main/screenshots/app.png?raw=true) + +> Warning ⚠️: The app is in early stages of development, I am still quite new to both writing full stack apps and using technologies like drizzle and react. Any contributions are welcome. diff --git a/apps/getashell/metadata/logo.jpg b/apps/getashell/metadata/logo.jpg new file mode 100644 index 00000000..78cfcd4e Binary files /dev/null and b/apps/getashell/metadata/logo.jpg differ