️ Tipi is a homeserver for everyone! One command setup, one click installs for your favorites self-hosted apps.
Go to file
Nicolas Meienberger c08f521cf6
release: 3.4.1 (#1471)
* Release/3.3.1 (#1439)

* chore: bump version to 3.3.1

* ci: run e2e when build-images is skipped

* feat: view app logs in dashboard (#1445)

* socket events for docker logs

* auto-scroll with ref

* add log terminal with auto scroll

* remove console.logs

* increase initial lines to 25

* remove more console logs

* useSocketEmit

* emit on disconect & hide tab if not running

* change tab when not running & logs options

* logs max lines

* logs emit

* remove console logs

* refactor(logs-socket): consolidate & reduce state usage

* useTranslations in logs tab

* remove wrapLines from useEffect

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* order file & add spanish translations

* chore: fix tsc issues

---------

Co-authored-by: Jorge Montejo <jorgemon.lopez@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* autoforward ports in codespaces (#1447)

* chore(deps-dev): bump @typescript-eslint/parser from 6.21.0 to 7.11.0 (#1443)

Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.21.0 to 7.11.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.11.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: sentry config (#1448)

* chore(deps): bump the minor-patch group across 1 directory with 17 updates (#1451)

* chore(deps): bump the minor-patch group across 1 directory with 17 updates

Bumps the minor-patch group with 17 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) | `8.4.0` | `8.7.0` |
| [@tabler/icons-react](https://github.com/tabler/tabler-icons/tree/HEAD/packages/icons-react) | `3.4.0` | `3.5.0` |
| [argon2](https://github.com/ranisalt/node-argon2) | `0.40.1` | `0.40.3` |
| [bullmq](https://github.com/taskforcesh/bullmq) | `5.7.12` | `5.7.14` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.51.4` | `7.51.5` |
| [sass](https://github.com/sass/dart-sass) | `1.77.2` | `1.77.3` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.12.12` | `20.12.13` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `7.10.0` | `7.11.0` |
| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.2.1` | `4.3.0` |
| [eslint-plugin-jsonc](https://github.com/ota-meshi/eslint-plugin-jsonc) | `2.15.1` | `2.16.0` |
| [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) | `7.34.1` | `7.34.2` |
| [jsdom](https://github.com/jsdom/jsdom) | `24.0.0` | `24.1.0` |
| [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip) | `5.16.0` | `5.17.3` |
| [@sentry/types](https://github.com/getsentry/sentry-javascript) | `8.4.0` | `8.7.0` |
| [@sentry/node](https://github.com/getsentry/sentry-javascript) | `8.4.0` | `8.7.0` |
| [hono](https://github.com/honojs/hono) | `4.3.11` | `4.4.0` |
| [nodemon](https://github.com/remy/nodemon) | `3.1.0` | `3.1.2` |



Updates `@sentry/nextjs` from 8.4.0 to 8.7.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.4.0...8.7.0)

Updates `@tabler/icons-react` from 3.4.0 to 3.5.0
- [Release notes](https://github.com/tabler/tabler-icons/releases)
- [Commits](https://github.com/tabler/tabler-icons/commits/v3.5.0/packages/icons-react)

Updates `argon2` from 0.40.1 to 0.40.3
- [Release notes](https://github.com/ranisalt/node-argon2/releases)
- [Commits](https://github.com/ranisalt/node-argon2/commits)

Updates `bullmq` from 5.7.12 to 5.7.14
- [Release notes](https://github.com/taskforcesh/bullmq/releases)
- [Commits](https://github.com/taskforcesh/bullmq/compare/v5.7.12...v5.7.14)

Updates `react-hook-form` from 7.51.4 to 7.51.5
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.51.4...v7.51.5)

Updates `sass` from 1.77.2 to 1.77.3
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.77.2...1.77.3)

Updates `@types/node` from 20.12.12 to 20.12.13
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@typescript-eslint/eslint-plugin` from 7.10.0 to 7.11.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.11.0/packages/eslint-plugin)

Updates `@vitejs/plugin-react` from 4.2.1 to 4.3.0
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/v4.3.0/packages/plugin-react)

Updates `eslint-plugin-jsonc` from 2.15.1 to 2.16.0
- [Release notes](https://github.com/ota-meshi/eslint-plugin-jsonc/releases)
- [Changelog](https://github.com/ota-meshi/eslint-plugin-jsonc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ota-meshi/eslint-plugin-jsonc/compare/v2.15.1...v2.16.0)

Updates `eslint-plugin-react` from 7.34.1 to 7.34.2
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.1...v7.34.2)

Updates `jsdom` from 24.0.0 to 24.1.0
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md)
- [Commits](https://github.com/jsdom/jsdom/compare/24.0.0...24.1.0)

Updates `knip` from 5.16.0 to 5.17.3
- [Release notes](https://github.com/webpro-nl/knip/releases)
- [Changelog](https://github.com/webpro-nl/knip/blob/main/packages/knip/.release-it.json)
- [Commits](https://github.com/webpro-nl/knip/commits/5.17.3/packages/knip)

Updates `@sentry/types` from 8.4.0 to 8.7.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.4.0...8.7.0)

Updates `@sentry/node` from 8.4.0 to 8.7.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.4.0...8.7.0)

Updates `hono` from 4.3.11 to 4.4.0
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.3.11...v4.4.0)

Updates `nodemon` from 3.1.0 to 3.1.2
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.0...v3.1.2)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: "@tabler/icons-react"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: argon2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: bullmq
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: react-hook-form
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: sass
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: "@vitejs/plugin-react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: eslint-plugin-jsonc
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: jsdom
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: knip
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: "@sentry/types"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: hono
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: fix vite plugin typings

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicolas Meienberger <github@thisprops.com>

* Feat/tipi logs terminal (#1450)

* refactor: extract logs terminal ui in its own component

* feat: runtipi logs settings

* fix: runtipi dashboard logs project name

* ci: use nightly version for e2e

* feat(docker-tamplate): include addPorts and readOnly in volumes (#1456)

* chore(deps): bump the minor-patch group with 6 updates (#1454)

* fix(logs): maxlines not updated in closure

* chore: add missing websecure options in docker-compose.dev

* chore(deps): bump the minor-patch group across 1 directory with 13 updates (#1466)

* chore(deps): bump the minor-patch group across 1 directory with 13 updates

Bumps the minor-patch group with 13 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.31.0` | `0.31.1` |
| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) | `8.11.5` | `8.12.0` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.13.0` | `20.14.1` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `7.11.0` | `7.12.0` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `7.11.0` | `7.12.0` |
| [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip) | `5.17.3` | `5.17.4` |
| [msw](https://github.com/mswjs/msw) | `2.3.0` | `2.3.1` |
| [prettier](https://github.com/prettier/prettier) | `3.2.5` | `3.3.0` |
| [hono](https://github.com/honojs/hono) | `4.4.2` | `4.4.3` |
| [yaml](https://github.com/eemeli/yaml) | `2.4.2` | `2.4.3` |
| [@sentry/esbuild-plugin](https://github.com/getsentry/sentry-javascript-bundler-plugins) | `2.17.0` | `2.18.0` |
| [nodemon](https://github.com/remy/nodemon) | `3.1.2` | `3.1.3` |
| [tsx](https://github.com/privatenumber/tsx) | `4.11.0` | `4.11.2` |



Updates `drizzle-orm` from 0.31.0 to 0.31.1
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.31.0...0.31.1)

Updates `pg` from 8.11.5 to 8.12.0
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.12.0/packages/pg)

Updates `@types/node` from 20.13.0 to 20.14.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@typescript-eslint/eslint-plugin` from 7.11.0 to 7.12.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.12.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 7.11.0 to 7.12.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.12.0/packages/parser)

Updates `knip` from 5.17.3 to 5.17.4
- [Release notes](https://github.com/webpro-nl/knip/releases)
- [Changelog](https://github.com/webpro-nl/knip/blob/main/packages/knip/.release-it.json)
- [Commits](https://github.com/webpro-nl/knip/commits/5.17.4/packages/knip)

Updates `msw` from 2.3.0 to 2.3.1
- [Release notes](https://github.com/mswjs/msw/releases)
- [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mswjs/msw/compare/v2.3.0...v2.3.1)

Updates `prettier` from 3.2.5 to 3.3.0
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.2.5...3.3.0)

Updates `hono` from 4.4.2 to 4.4.3
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.4.2...v4.4.3)

Updates `yaml` from 2.4.2 to 2.4.3
- [Release notes](https://github.com/eemeli/yaml/releases)
- [Commits](https://github.com/eemeli/yaml/compare/v2.4.2...v2.4.3)

Updates `@sentry/esbuild-plugin` from 2.17.0 to 2.18.0
- [Release notes](https://github.com/getsentry/sentry-javascript-bundler-plugins/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript-bundler-plugins/blob/main/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript-bundler-plugins/compare/2.17.0...2.18.0)

Updates `nodemon` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.2...v3.1.3)

Updates `tsx` from 4.11.0 to 4.11.2
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.11.0...v4.11.2)

---
updated-dependencies:
- dependency-name: drizzle-orm
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: pg
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: knip
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: msw
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: hono
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: yaml
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: "@sentry/esbuild-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: tsx
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: fix linting issue

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicolas Meienberger <github@thisprops.com>

* docs: add gabrielfariasnunes as a contributor for translation (#1461)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* feat: add portuguese language

* chore(deps-dev): bump @testing-library/react from 15.0.7 to 16.0.0 (#1464)

Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 15.0.7 to 16.0.0.
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v15.0.7...v16.0.0)

---
updated-dependencies:
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump the minor-patch group with 5 updates (#1468)

Bumps the minor-patch group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@hookform/resolvers](https://github.com/react-hook-form/resolvers) | `3.4.2` | `3.5.0` |
| [bullmq](https://github.com/taskforcesh/bullmq) | `5.7.14` | `5.7.15` |
| [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) | `7.24.6` | `7.24.7` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.14.1` | `20.14.2` |
| [prettier](https://github.com/prettier/prettier) | `3.3.0` | `3.3.1` |


Updates `@hookform/resolvers` from 3.4.2 to 3.5.0
- [Release notes](https://github.com/react-hook-form/resolvers/releases)
- [Commits](https://github.com/react-hook-form/resolvers/compare/v3.4.2...v3.5.0)

Updates `bullmq` from 5.7.14 to 5.7.15
- [Release notes](https://github.com/taskforcesh/bullmq/releases)
- [Commits](https://github.com/taskforcesh/bullmq/compare/v5.7.14...v5.7.15)

Updates `@babel/core` from 7.24.6 to 7.24.7
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.7/packages/babel-core)

Updates `@types/node` from 20.14.1 to 20.14.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `prettier` from 3.3.0 to 3.3.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.3.0...3.3.1)

---
updated-dependencies:
- dependency-name: "@hookform/resolvers"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: bullmq
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* New Crowdin updates (#1467)

* New translations en.json (French)

* New translations en.json (Romanian)

* New translations en.json (Spanish)

* New translations en.json (Afrikaans)

* New translations en.json (Turkish)

* New translations en.json (Arabic)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Italian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Dutch)

* New translations en.json (Norwegian)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Serbian (Cyrillic))

* New translations en.json (Swedish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Traditional)

* New translations en.json (English)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Spanish)

* New translations en.json (Russian)

* New translations en.json (French)

* New translations en.json (French)

* New translations en.json (Turkish)

* New translations en.json (Romanian)

* New translations en.json (Spanish)

* New translations en.json (Afrikaans)

* New translations en.json (Arabic)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Italian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Dutch)

* New translations en.json (Norwegian)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Serbian (Cyrillic))

* New translations en.json (Swedish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Traditional)

* New translations en.json (English)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Spanish)

* New translations en.json (Russian)

* New translations en.json (Vietnamese)

* New translations en.json (Vietnamese)

* New translations en.json (German)

* New translations en.json (German)

* New translations en.json (German)

* New translations en.json (German)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Swedish)

* New translations en.json (Swedish)

* New translations en.json (French)

* New translations en.json (Turkish)

* New translations en.json (Romanian)

* New translations en.json (Spanish)

* New translations en.json (Afrikaans)

* New translations en.json (Arabic)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Italian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Dutch)

* New translations en.json (Norwegian)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Serbian (Cyrillic))

* New translations en.json (Swedish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Traditional)

* New translations en.json (English)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Russian)

* New translations en.json (French)

* New translations en.json (Turkish)

* New translations en.json (Romanian)

* New translations en.json (Spanish)

* New translations en.json (Afrikaans)

* New translations en.json (Arabic)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Italian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Dutch)

* New translations en.json (Norwegian)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Serbian (Cyrillic))

* New translations en.json (Swedish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Traditional)

* New translations en.json (English)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Russian)

* New translations en.json (Spanish)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Portuguese, Brazilian)

* chore(deps): bump the minor-patch group across 1 directory with 9 updates (#1470)

Bumps the minor-patch group with 9 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@hookform/resolvers](https://github.com/react-hook-form/resolvers) | `3.5.0` | `3.6.0` |
| [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) | `8.7.0` | `8.8.0` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.31.1` | `0.31.2` |
| [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) | `28.5.0` | `28.6.0` |
| [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip) | `5.17.4` | `5.18.0` |
| [@sentry/types](https://github.com/getsentry/sentry-javascript) | `8.7.0` | `8.8.0` |
| [@sentry/node](https://github.com/getsentry/sentry-javascript) | `8.7.0` | `8.8.0` |
| [hono](https://github.com/honojs/hono) | `4.4.3` | `4.4.4` |
| [tsx](https://github.com/privatenumber/tsx) | `4.11.2` | `4.13.2` |



Updates `@hookform/resolvers` from 3.5.0 to 3.6.0
- [Release notes](https://github.com/react-hook-form/resolvers/releases)
- [Commits](https://github.com/react-hook-form/resolvers/compare/v3.5.0...v3.6.0)

Updates `@sentry/nextjs` from 8.7.0 to 8.8.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.7.0...8.8.0)

Updates `drizzle-orm` from 0.31.1 to 0.31.2
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.31.1...0.31.2)

Updates `eslint-plugin-jest` from 28.5.0 to 28.6.0
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v28.5.0...v28.6.0)

Updates `knip` from 5.17.4 to 5.18.0
- [Release notes](https://github.com/webpro-nl/knip/releases)
- [Changelog](https://github.com/webpro-nl/knip/blob/main/packages/knip/.release-it.json)
- [Commits](https://github.com/webpro-nl/knip/commits/5.18.0/packages/knip)

Updates `@sentry/types` from 8.7.0 to 8.8.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.7.0...8.8.0)

Updates `@sentry/node` from 8.7.0 to 8.8.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.7.0...8.8.0)

Updates `hono` from 4.4.3 to 4.4.4
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.4.3...v4.4.4)

Updates `tsx` from 4.11.2 to 4.13.2
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.11.2...v4.13.2)

---
updated-dependencies:
- dependency-name: "@hookform/resolvers"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: drizzle-orm
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: knip
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: "@sentry/types"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-patch
- dependency-name: hono
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-patch
- dependency-name: tsx
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: bump version to 3.4.1

* feat(logs): keep tabs in url and settings in local storage

* fix(logs): run only on the client

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Jorge Montejo <jorgemon.lopez@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Stavros <steveiliop56@gmail.com>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2024-06-09 11:30:21 +02:00
.devcontainer release: 3.4.0 (#1459) 2024-06-02 19:49:31 +02:00
.github release: 3.4.0 (#1459) 2024-06-02 19:49:31 +02:00
e2e Release/3.3.1 (#1438) 2024-05-26 16:18:57 +02:00
packages release: 3.4.1 (#1471) 2024-06-09 11:30:21 +02:00
patches chore: apply next-safe-action patch 2023-10-12 22:26:34 +02:00
public release: 3.4.1 (#1471) 2024-06-09 11:30:21 +02:00
screenshots [ImgBot] Optimize images 2022-12-20 22:24:41 +01:00
scripts Release/3.3.1 (#1438) 2024-05-26 16:18:57 +02:00
src release: 3.4.1 (#1471) 2024-06-09 11:30:21 +02:00
tests release/3.3.0 (#1424) 2024-05-25 20:38:38 +02:00
.all-contributorsrc release: 3.4.1 (#1471) 2024-06-09 11:30:21 +02:00
.dockerignore Release/3.3.1 (#1438) 2024-05-26 16:18:57 +02:00
.env.example chore: fix wrong env name 2024-04-27 23:24:51 +02:00
.env.test refactor: move db migrations in cli start command 2023-08-28 20:23:51 +02:00
.eslintignore chore(deps): bump next-safe-action 2024-02-01 20:01:29 +01:00
.eslintrc.js Release/3.3.1 (#1438) 2024-05-26 16:18:57 +02:00
.gitignore Release/3.3.1 (#1438) 2024-05-26 16:18:57 +02:00
.prettierignore release: 3.4.0 (#1459) 2024-06-02 19:49:31 +02:00
.prettierrc.js chore: order translations keys with eslint 2024-01-18 20:21:07 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2022-05-13 14:04:16 +00:00
codecov.yml ci: enable informational mode in codecov 2023-09-02 22:03:39 +02:00
crowdin.yml feat: setup next-intl with initial page props 2023-05-09 08:29:35 +02:00
docker-compose.dev.yml release: 3.4.1 (#1471) 2024-06-09 11:30:21 +02:00
docker-compose.prod.yml release: 3.4.0 (#1459) 2024-06-02 19:49:31 +02:00
Dockerfile release: 3.4.0 (#1459) 2024-06-02 19:49:31 +02:00
Dockerfile.dev release: 3.4.0 (#1459) 2024-06-02 19:49:31 +02:00
global.d.ts feat: setup next-intl with initial page props 2023-05-09 08:29:35 +02:00
LICENSE Create LICENSE 2022-04-22 10:22:43 +00:00
next-env.d.ts feat(apps): add "enable on guest dashboard option" 2023-11-02 19:04:57 +01:00
next.config.mjs release: 3.4.0 (#1459) 2024-06-02 19:49:31 +02:00
package.json release: 3.4.1 (#1471) 2024-06-09 11:30:21 +02:00
playwright.config.ts tests(e2e): refactor register user to insert directly in db 2023-06-03 19:18:18 +02:00
pnpm-lock.yaml release: 3.4.1 (#1471) 2024-06-09 11:30:21 +02:00
pnpm-workspace.yaml feat: create new cli package 2023-08-16 21:53:59 +02:00
README.md release: 3.4.1 (#1471) 2024-06-09 11:30:21 +02:00
reset.d.ts chore: create ts path aliases and add ts-reset 2023-03-28 22:44:03 +02:00
sentry.client.config.ts release: 3.4.0 (#1459) 2024-06-02 19:49:31 +02:00
sonar-project.properties refactor: move dashboard files in root folder 2023-02-20 08:41:59 +01:00
start.dev.sh release/3.3.0 (#1424) 2024-05-25 20:38:38 +02:00
start.prod.sh fix(worker): use correct path for ssl cert output 2024-03-21 07:41:20 +01:00
tsconfig.json release/3.3.0 (#1424) 2024-05-25 20:38:38 +02:00
vitest.workspace.ts release: 3.4.0 (#1459) 2024-06-02 19:49:31 +02:00

Tipi — A personal homeserver for everyone

All Contributors

License Version Issues Docker Pulls Docker Image Size Build Crowdin

💡 Tipi is built with TypeScript, Next.js app router and Drizzle ORM! If you want to collaborate on a cool project, join the discussion on Discord!

Join the community

Discord

Preview

⚠️ Tipi is built and maintained by volunteers. There is no guarantee of support or security when you use Tipi. While the system is considered stable, it is still in active development and may contain bugs.

Tipi is a personal homeserver orchestrator that makes it easy to manage and run multiple services on a single server. It is based on Docker and comes with a simple web interface to manage your services. Tipi is designed to be easy to use, so you don't have to worry about manual configuration or networking. Simply install Tipi on your server and use the web interface to add and manage services. You can see a list of available services in the App Store repo and request new ones if you don't see what you need. To get started, follow the installation instructions below.

Getting started

Visit our website runtipi.io for installation instructions, documentation and guides.

Demo

You can try out a demo of Tipi at demo.runtipi.io using the following credentials:

username: user@runtipi.io
password: password

📚 Documentation

You can find more documentation and tutorials / FAQ on runtipi.io

❤️ Contributing

Tipi is made to be very easy to plug in new apps. We welcome and appreciate new contributions.

If you want to add a new app or feature, you can follow the Contribution guide for instructions on how to do so.

We are looking for contributions of all kinds. If you know design, development, or have ideas for new features, please get in touch.

📜 License

License

Tipi is licensed under the GNU General Public License v3.0. TL;DR — You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions.

🗣 Community

🙏 Acknowledgements

  • GitHub - Thanks for generously giving us access to your full product suite
  • Freepik - Thanks for providing a free logo for the project
  • Sentry - Thanks for providing error tracking for the project
  • Crowdin - Thanks for providing localization management for the project
  • CodeRabbit - Thanks for providing free AI code reviews in our Pull Requests

Contributors

Thanks goes to these wonderful people (emoji key):

Nicolas Meienberger
Nicolas Meienberger

💻 🚇 ⚠️ 📖
ArneNaessens
ArneNaessens

💻 🤔 ⚠️
DrMxrcy
DrMxrcy

💻 🤔 ⚠️ 🖋 📣 💬 👀
Cooper
Cooper

💻
JTruj1ll0923
JTruj1ll0923

💻
Stetsed
Stetsed

💻
Jones_Town
Jones_Town

💻
Rushi Chaudhari
Rushi Chaudhari

💻
Robert Blaine
Robert Blaine

💻
Seth For Privacy
Seth For Privacy

💻
Prajna
Prajna

💻
Justin Moy
Justin Moy

💻
dextreem
dextreem

💻
Brahim Hadriche
Brahim Hadriche

💻
Andrew Brereton
Andrew Brereton

🖋
Freddie Sackur
Freddie Sackur

💻 📖
Innocentius
Innocentius

🌍
Alex
Alex

💻
Ryan Wang
Ryan Wang

💻
simonandr
simonandr

🖋
iepure
iepure

🌍
Sergey Kodolov
Sergey Kodolov

🌍 💻
sclaren
sclaren

💻
mcmeel
mcmeel

💬 🤔 💻 📖
NoisyFridge
NoisyFridge

🌍
Bvoxl
Bvoxl

🌍
m-lab-0
m-lab-0

🌍
dannkunt
dannkunt

🌍
Schmanko
Schmanko

🌍
Nghia Lele
Nghia Lele

🌍
amusingimpala75
amusingimpala75

💻
David
David

🌍
Stavros
Stavros

🌍 💻 ⚠️ 📖
loxiry
loxiry

🌍
JigSaw
JigSaw

💻
DireMunchkin
DireMunchkin

💻
Fabio Cingottini
Fabio Cingottini

🌍
him
him

💻
CHALOPIN Clément
CHALOPIN Clément

💻
Geetansh Jindal
Geetansh Jindal

💻
Olivier Garcia
Olivier Garcia

💻
qcoudeyr
qcoudeyr

💻
Armand Gillot
Armand Gillot

💻
Jaffo73
Jaffo73

⚠️ 💻
Jorge Montejo
Jorge Montejo

💻
Frédéric Cilia
Frédéric Cilia

💻
Agustín Carrasco
Agustín Carrasco

💻
Thibault Claude
Thibault Claude

💻
Joshua Banks
Joshua Banks

💻 📖
hex-developer
hex-developer

💻
Gabriel Farias Nunes
Gabriel Farias Nunes

🌍

Did you contribute and want to see your name listed in the README? Write a comment here This project follows the all-contributors specification. Contributions of any kind welcome!