From 931456ea3cb7b7936c78d51943c8d3f301db2a23 Mon Sep 17 00:00:00 2001 From: "cori.schlegel" Date: Sat, 13 Jan 2024 14:18:08 +0000 Subject: [PATCH 01/11] ignore .vscode files --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 21db3dbf..9a74ed4c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ node_modules/ package-lock.json github.secrets .DS_Store -.nova \ No newline at end of file +.nova +.vscode/ From 51fef8166e90499b88362cb29b7db5619f974c3f Mon Sep 17 00:00:00 2001 From: "cori.schlegel" Date: Sat, 13 Jan 2024 14:20:52 +0000 Subject: [PATCH 02/11] add atuin --- apps/atuin/config.json | 20 +++++++++++ apps/atuin/docker-compose.yml | 56 +++++++++++++++++++++++++++++ apps/atuin/metadata/description.md | 5 +++ apps/atuin/metadata/logo.png | Bin 0 -> 21283 bytes 4 files changed, 81 insertions(+) create mode 100644 apps/atuin/config.json create mode 100644 apps/atuin/docker-compose.yml create mode 100644 apps/atuin/metadata/description.md create mode 100644 apps/atuin/metadata/logo.png diff --git a/apps/atuin/config.json b/apps/atuin/config.json new file mode 100644 index 00000000..a344fe09 --- /dev/null +++ b/apps/atuin/config.json @@ -0,0 +1,20 @@ +{ + "$schema": "../schema.json", + "name": "Atuin", + "available": true, + "exposable": true, + "port": 8888, + "id": "atuin", + "tipi_version": 2, + "version": "latest", + "categories": [ + "utilities", + "development" + ], + "description": "Making your shell magical", + "short_desc": "Magical Shell History", + "author": "atuinsh", + "source": "https://github.com/atuinsh/atuin", + "form_fields": [], + "supported_architectures": ["amd64"] +} diff --git a/apps/atuin/docker-compose.yml b/apps/atuin/docker-compose.yml new file mode 100644 index 00000000..c4cba8bf --- /dev/null +++ b/apps/atuin/docker-compose.yml @@ -0,0 +1,56 @@ +version: "3.5" +services: + atuin: + restart: always + image: ghcr.io/atuinsh/atuin:latest + command: server start + volumes: + - "./config:/config" + links: + - postgresql:db + ports: + - 8888:8888 + environment: + ATUIN_HOST: "0.0.0.0" + ATUIN_OPEN_REGISTRATION: "true" + ATUIN_DB_URI: postgres://atuin:really-insecure@db/atuin + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.atuin-web-redirect.redirectscheme.scheme: https + traefik.http.services.atuin.loadbalancer.server.port: 8888 + # Web + traefik.http.routers.atuin-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.atuin-insecure.entrypoints: web + traefik.http.routers.atuin-insecure.service: atuin + traefik.http.routers.atuin-insecure.middlewares: atuin-web-redirect + # Websecure + traefik.http.routers.atuin.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.atuin.entrypoints: websecure + traefik.http.routers.atuin.service: atuin + traefik.http.routers.atuin.tls.certresolver: myresolver + # Local domain + traefik.http.routers.atuin-local-insecure.rule: Host(`atuin.${LOCAL_DOMAIN}`) + traefik.http.routers.atuin-local-insecure.entrypoints: web + traefik.http.routers.atuin-local-insecure.service: atuin + traefik.http.routers.atuin-local-insecure.middlewares: atuin-web-redirect + # Local domain secure + traefik.http.routers.atuin-local.rule: Host(`atuin.${LOCAL_DOMAIN}`) + traefik.http.routers.atuin-local.entrypoints: websecure + traefik.http.routers.atuin-local.service: atuin + traefik.http.routers.atuin-local.tls: true + + postgresql: + image: postgres:14 + restart: unless-stopped + volumes: # Don't remove permanent storage for index database files! + - "./database:/var/lib/postgresql/data/" + environment: + POSTGRES_USER: atuin + POSTGRES_PASSWORD: really-insecure + POSTGRES_DB: atuin + networks: + - tipi_main_network + \ No newline at end of file diff --git a/apps/atuin/metadata/description.md b/apps/atuin/metadata/description.md new file mode 100644 index 00000000..95796ff0 --- /dev/null +++ b/apps/atuin/metadata/description.md @@ -0,0 +1,5 @@ +# Atuin + +## Making your shell magical + +Sync, search and backup shell history with Atuin \ No newline at end of file diff --git a/apps/atuin/metadata/logo.png b/apps/atuin/metadata/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..952e299145b4279e52ce95278bcad5ed476e4f81 GIT binary patch literal 21283 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 D^*Pz5 literal 0 HcmV?d00001 From 22246362452bb2c10c861b0be97bdfdd15f2389b Mon Sep 17 00:00:00 2001 From: "cori.schlegel" Date: Sun, 14 Jan 2024 04:56:51 +0000 Subject: [PATCH 03/11] Update volume bindings; fix logo --- apps/atuin/config.json | 0 apps/atuin/docker-compose.yml | 4 ++-- apps/atuin/metadata/description.md | 0 apps/atuin/metadata/logo.jpg | Bin 0 -> 46799 bytes apps/atuin/metadata/logo.png | Bin 21283 -> 0 bytes 5 files changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 apps/atuin/config.json mode change 100644 => 100755 apps/atuin/docker-compose.yml mode change 100644 => 100755 apps/atuin/metadata/description.md create mode 100644 apps/atuin/metadata/logo.jpg delete mode 100644 apps/atuin/metadata/logo.png diff --git a/apps/atuin/config.json b/apps/atuin/config.json old mode 100644 new mode 100755 diff --git a/apps/atuin/docker-compose.yml b/apps/atuin/docker-compose.yml old mode 100644 new mode 100755 index c4cba8bf..fd2d5aa8 --- a/apps/atuin/docker-compose.yml +++ b/apps/atuin/docker-compose.yml @@ -5,7 +5,7 @@ services: image: ghcr.io/atuinsh/atuin:latest command: server start volumes: - - "./config:/config" + - "${APP_DATA_DIR}:/config" links: - postgresql:db ports: @@ -46,7 +46,7 @@ services: image: postgres:14 restart: unless-stopped volumes: # Don't remove permanent storage for index database files! - - "./database:/var/lib/postgresql/data/" + - "${APP_DATA_DIR}/data:/var/lib/postgresql/data/" environment: POSTGRES_USER: atuin POSTGRES_PASSWORD: really-insecure diff --git a/apps/atuin/metadata/description.md b/apps/atuin/metadata/description.md old mode 100644 new mode 100755 diff --git a/apps/atuin/metadata/logo.jpg b/apps/atuin/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..229b3c0fe93226357340936e448298bcec5a4254 GIT binary patch literal 46799 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 z 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%0AssKii^+)=m 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 D^*Pz5 From 43241a35a290b332a9d9e14225c7f7307dc03986 Mon Sep 17 00:00:00 2001 From: "cori.schlegel" Date: Sun, 14 Jan 2024 05:09:32 +0000 Subject: [PATCH 04/11] add db password --- apps/atuin/config.json | 9 ++++++++- apps/atuin/docker-compose.yml | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/atuin/config.json b/apps/atuin/config.json index a344fe09..e5456d3f 100755 --- a/apps/atuin/config.json +++ b/apps/atuin/config.json @@ -15,6 +15,13 @@ "short_desc": "Magical Shell History", "author": "atuinsh", "source": "https://github.com/atuinsh/atuin", - "form_fields": [], + "form_fields": [ + { + "type": "password", + "label": "Atuin DB Password", + "required": true, + "env_variable": "ATUIN_DB_PASSWORD" + } + ], "supported_architectures": ["amd64"] } diff --git a/apps/atuin/docker-compose.yml b/apps/atuin/docker-compose.yml index fd2d5aa8..21253e29 100755 --- a/apps/atuin/docker-compose.yml +++ b/apps/atuin/docker-compose.yml @@ -13,7 +13,7 @@ services: environment: ATUIN_HOST: "0.0.0.0" ATUIN_OPEN_REGISTRATION: "true" - ATUIN_DB_URI: postgres://atuin:really-insecure@db/atuin + ATUIN_DB_URI: "postgres://atuin:${ATUIN_DB_PASSWORD}@db/atuin" networks: - tipi_main_network labels: @@ -49,7 +49,7 @@ services: - "${APP_DATA_DIR}/data:/var/lib/postgresql/data/" environment: POSTGRES_USER: atuin - POSTGRES_PASSWORD: really-insecure + POSTGRES_PASSWORD: "${ATUIN_DB_PASSWORD}" POSTGRES_DB: atuin networks: - tipi_main_network From 86ca1cb5e6fa01998cdcd42de20378daac1e0e81 Mon Sep 17 00:00:00 2001 From: "cori.schlegel" Date: Sun, 14 Jan 2024 13:19:29 +0000 Subject: [PATCH 05/11] update description and platforms; reset tipi version --- apps/atuin/config.json | 7 ++++--- apps/atuin/metadata/description.md | 30 ++++++++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/apps/atuin/config.json b/apps/atuin/config.json index e5456d3f..c9acba7f 100755 --- a/apps/atuin/config.json +++ b/apps/atuin/config.json @@ -1,11 +1,11 @@ { "$schema": "../schema.json", - "name": "Atuin", + "name": "Atuin Server", "available": true, "exposable": true, "port": 8888, "id": "atuin", - "tipi_version": 2, + "tipi_version": 1, "version": "latest", "categories": [ "utilities", @@ -15,6 +15,7 @@ "short_desc": "Magical Shell History", "author": "atuinsh", "source": "https://github.com/atuinsh/atuin", + "website": "https://atuin.sh", "form_fields": [ { "type": "password", @@ -23,5 +24,5 @@ "env_variable": "ATUIN_DB_PASSWORD" } ], - "supported_architectures": ["amd64"] + "supported_architectures": ["amd64","arm64"] } diff --git a/apps/atuin/metadata/description.md b/apps/atuin/metadata/description.md index 95796ff0..197c3cf5 100755 --- a/apps/atuin/metadata/description.md +++ b/apps/atuin/metadata/description.md @@ -1,5 +1,31 @@ -# Atuin +# Atuin Server ## Making your shell magical -Sync, search and backup shell history with Atuin \ No newline at end of file +Sync, search and backup shell history with Atuin + +[Atuin](https://atuin.sh) is an open-source Terminal User Interface (TUI) for your shell history. + +![Atuin TUI screenshot](https://atuin.sh/_astro/cargo-prefix.322ce063_Z3NFdB.avif) + +## Features + +1. Shell History Sync + - Sync your shell history to all of your machines, wherever they are +1. End-to-end Encryption + - All data is encrypted, and can only be read by you +1. Efficient Search + - Search decades of shell history, and recall it in an instant. Atuin offers configurable full text or fuzzy search, filterable by host, directory, etc. +1. Data Import + - Bring your existing history with you - Atuin supports importing from a wide variety of formats +1. Store Extra Context + - Atuin stores extra context with your commands - working directory, exit code, and more! + +## Self-hosted sync server + +Atuin.sh offers a free, fully-encrypted option for storing your synced shell history as well as an option to self-host a sync server of your own. This is an easy-to-use package for the Atuin sync server component; the user interface is the TUI, which can be installed using many typical package-management tools, e.g. + +- `brew install atuin` +- `apt install atuin` + +or via `bash <(curl --proto '=https' --tlsv1.2 -sSf https://setup.atuin.sh)`. \ No newline at end of file From 29f83952ee5004a644bd1539107dba827572aae9 Mon Sep 17 00:00:00 2001 From: "cori.schlegel" Date: Sun, 14 Jan 2024 14:14:30 +0000 Subject: [PATCH 06/11] add `no_gui` --- apps/atuin/config.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/atuin/config.json b/apps/atuin/config.json index c9acba7f..956f86a4 100755 --- a/apps/atuin/config.json +++ b/apps/atuin/config.json @@ -13,9 +13,10 @@ ], "description": "Making your shell magical", "short_desc": "Magical Shell History", - "author": "atuinsh", + "author": "https://github.com/atuinsh", "source": "https://github.com/atuinsh/atuin", "website": "https://atuin.sh", + "no_gui": true, "form_fields": [ { "type": "password", From f1e54ed36352b3e9e4423870844bbdf8c76cac02 Mon Sep 17 00:00:00 2001 From: "cori.schlegel" Date: Sun, 14 Jan 2024 14:14:52 +0000 Subject: [PATCH 07/11] fixup new app guide link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2b2d8187..43a81b55 100644 --- a/README.md +++ b/README.md @@ -180,4 +180,4 @@ If you want to see new apps on Tipi you can either: - [Open an issue](https://github.com/meienberger/runtipi-appstore/issues) on this repository and members of the community will add it - [Join the Discord](https://discord.gg/Bu9qEPnHsc) members of the community will add it. -- Fork this repo and create the necessary files for a Tipi app. Follow this [guide](<[https://github.com/meienberger/runtipi/wiki/Adding-your-own-app](https://www.runtipi.io/docs/contributing/adding-a-new-app)>) +- Fork this repo and create the necessary files for a Tipi app. Follow this [guide](https://www.runtipi.io/docs/contributing/adding-a-new-app). From dd95db4308de2489c675e9cf027cf90f92dba1ab Mon Sep 17 00:00:00 2001 From: cori schlegel <46317+cori@users.noreply.github.com> Date: Sun, 14 Jan 2024 08:26:42 -0600 Subject: [PATCH 08/11] Update apps/atuin/metadata/description.md with reservations Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- apps/atuin/metadata/description.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/apps/atuin/metadata/description.md b/apps/atuin/metadata/description.md index 197c3cf5..3a19ee6e 100755 --- a/apps/atuin/metadata/description.md +++ b/apps/atuin/metadata/description.md @@ -10,15 +10,13 @@ Sync, search and backup shell history with Atuin ## Features -1. Shell History Sync - - Sync your shell history to all of your machines, wherever they are -1. End-to-end Encryption +2. End-to-end Encryption - All data is encrypted, and can only be read by you -1. Efficient Search +3. Efficient Search - Search decades of shell history, and recall it in an instant. Atuin offers configurable full text or fuzzy search, filterable by host, directory, etc. -1. Data Import +4. Data Import - Bring your existing history with you - Atuin supports importing from a wide variety of formats -1. Store Extra Context +5. Store Extra Context - Atuin stores extra context with your commands - working directory, exit code, and more! ## Self-hosted sync server From 902540d3367218f06c9fd35925bf14526b0f475a Mon Sep 17 00:00:00 2001 From: "cori.schlegel" Date: Mon, 15 Jan 2024 04:42:53 +0000 Subject: [PATCH 09/11] fixup numbered list --- README.md | 2 +- apps/atuin/metadata/description.md | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 43a81b55..2b2d8187 100644 --- a/README.md +++ b/README.md @@ -180,4 +180,4 @@ If you want to see new apps on Tipi you can either: - [Open an issue](https://github.com/meienberger/runtipi-appstore/issues) on this repository and members of the community will add it - [Join the Discord](https://discord.gg/Bu9qEPnHsc) members of the community will add it. -- Fork this repo and create the necessary files for a Tipi app. Follow this [guide](https://www.runtipi.io/docs/contributing/adding-a-new-app). +- Fork this repo and create the necessary files for a Tipi app. Follow this [guide](<[https://github.com/meienberger/runtipi/wiki/Adding-your-own-app](https://www.runtipi.io/docs/contributing/adding-a-new-app)>) diff --git a/apps/atuin/metadata/description.md b/apps/atuin/metadata/description.md index 3a19ee6e..367e2f9e 100755 --- a/apps/atuin/metadata/description.md +++ b/apps/atuin/metadata/description.md @@ -10,13 +10,13 @@ Sync, search and backup shell history with Atuin ## Features -2. End-to-end Encryption +1. End-to-end Encryption - All data is encrypted, and can only be read by you -3. Efficient Search +2. Efficient Search - Search decades of shell history, and recall it in an instant. Atuin offers configurable full text or fuzzy search, filterable by host, directory, etc. -4. Data Import +3. Data Import - Bring your existing history with you - Atuin supports importing from a wide variety of formats -5. Store Extra Context +4. Store Extra Context - Atuin stores extra context with your commands - working directory, exit code, and more! ## Self-hosted sync server From bd44ceee3f57076a22bc802eca304f26547df36b Mon Sep 17 00:00:00 2001 From: cori schlegel <46317+cori@users.noreply.github.com> Date: Mon, 15 Jan 2024 05:45:42 -0600 Subject: [PATCH 10/11] fix description.md uff da; i goofed up the previous "fix" --- apps/atuin/metadata/description.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/atuin/metadata/description.md b/apps/atuin/metadata/description.md index 367e2f9e..b979e289 100755 --- a/apps/atuin/metadata/description.md +++ b/apps/atuin/metadata/description.md @@ -10,13 +10,15 @@ Sync, search and backup shell history with Atuin ## Features -1. End-to-end Encryption +1. Shell History Sync + - Sync your shell history to all of your machines, wherever they are +2. End-to-end Encryption - All data is encrypted, and can only be read by you -2. Efficient Search +3. Efficient Search - Search decades of shell history, and recall it in an instant. Atuin offers configurable full text or fuzzy search, filterable by host, directory, etc. -3. Data Import +4. Data Import - Bring your existing history with you - Atuin supports importing from a wide variety of formats -4. Store Extra Context +5. Store Extra Context - Atuin stores extra context with your commands - working directory, exit code, and more! ## Self-hosted sync server @@ -26,4 +28,4 @@ Atuin.sh offers a free, fully-encrypted option for storing your synced shell his - `brew install atuin` - `apt install atuin` -or via `bash <(curl --proto '=https' --tlsv1.2 -sSf https://setup.atuin.sh)`. \ No newline at end of file +or via `bash <(curl --proto '=https' --tlsv1.2 -sSf https://setup.atuin.sh)`. From ff0aa7cb81656a7df3f6e5b37784cecc218cb0dc Mon Sep 17 00:00:00 2001 From: cori Date: Fri, 19 Jan 2024 01:23:59 +0000 Subject: [PATCH 11/11] fixup docker-compose.yml add `container_name` as indicated in failing tests --- apps/atuin/docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/atuin/docker-compose.yml b/apps/atuin/docker-compose.yml index 21253e29..4566b66c 100755 --- a/apps/atuin/docker-compose.yml +++ b/apps/atuin/docker-compose.yml @@ -1,6 +1,7 @@ version: "3.5" services: atuin: + container_name: atuin restart: always image: ghcr.io/atuinsh/atuin:latest command: server start