Compare commits

...

23 commits

Author SHA1 Message Date
allcontributors[bot]
c962f030e3 docs: update .all-contributorsrc [skip ci] 2023-12-07 08:15:30 +01:00
allcontributors[bot]
1f5701120f docs: update README.md [skip ci] 2023-12-07 08:15:30 +01:00
dependabot[bot]
249103f0a6 chore(deps-dev): bump @types/jest from 29.5.7 to 29.5.11
Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 29.5.7 to 29.5.11.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

---
updated-dependencies:
- dependency-name: "@types/jest"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 21:04:50 +01:00
dependabot[bot]
bb1f343ac9 chore(deps): bump react-tooltip from 5.22.0 to 5.25.0
Bumps [react-tooltip](https://github.com/ReactTooltip/react-tooltip) from 5.22.0 to 5.25.0.
- [Release notes](https://github.com/ReactTooltip/react-tooltip/releases)
- [Changelog](https://github.com/ReactTooltip/react-tooltip/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ReactTooltip/react-tooltip/compare/v5.22.0...v5.25.0)

---
updated-dependencies:
- dependency-name: react-tooltip
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 20:50:02 +01:00
Stavros
6b371de137 refactor(ui): change font to geist 2023-12-06 20:44:51 +01:00
Nicolas Meienberger
7133a2a2dc Merge branch 'master' into develop 2023-12-01 09:12:31 +01:00
Nicolas Meienberger
44d40b4a34 Merge branch 'hotfix/restart-failure' 2023-12-01 09:07:26 +01:00
Nicolas Meienberger
03e2604ca0 hotfix(docker): make postgres restart policy "unless-stopped" instead of "on-failure" 2023-12-01 08:44:53 +01:00
Nicolas Meienberger
ba3d860176 hotfix(install.sh): ask to re-run install script after docker is installed 2023-11-29 18:34:50 +01:00
Nicolas Meienberger
250e78450f chore: bump node to 20 in dockerfiles and actions 2023-11-29 08:41:35 +01:00
dependabot[bot]
d11299eeb8 chore(deps-dev): bump @types/cli-progress from 3.11.4 to 3.11.5
Bumps [@types/cli-progress](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/cli-progress) from 3.11.4 to 3.11.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/cli-progress)

---
updated-dependencies:
- dependency-name: "@types/cli-progress"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 08:22:40 +01:00
dependabot[bot]
6cd7ca1a4e chore(deps): bump @tabler/icons-react from 2.40.0 to 2.42.0
Bumps [@tabler/icons-react](https://github.com/tabler/tabler-icons/tree/HEAD/packages/icons-react) from 2.40.0 to 2.42.0.
- [Release notes](https://github.com/tabler/tabler-icons/releases)
- [Commits](https://github.com/tabler/tabler-icons/commits/v2.42.0/packages/icons-react)

---
updated-dependencies:
- dependency-name: "@tabler/icons-react"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 08:22:22 +01:00
dependabot[bot]
bb9f26b2b1 chore(deps-dev): bump @types/react from 18.2.34 to 18.2.39
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.34 to 18.2.39.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 08:22:09 +01:00
dependabot[bot]
30890bedd5 chore(deps-dev): bump eslint-config-next from 14.0.1 to 14.0.3
Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 14.0.1 to 14.0.3.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v14.0.3/packages/eslint-config-next)

---
updated-dependencies:
- dependency-name: eslint-config-next
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 08:21:58 +01:00
dependabot[bot]
3876e8ee55 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.9.1 to 6.13.1.
- [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/v6.13.1/packages/eslint-plugin)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 08:21:44 +01:00
Nicolas Meienberger
92d5a7b6a3 ci(release): make publish dependant on all builds 2023-11-28 22:31:44 +01:00
Nicolas Meienberger
ca3dc64fd4 ci(release): fix dependency on first job 2023-11-28 22:30:30 +01:00
Nicolas Meienberger
59dbe672c8
Merge pull request #960 from runtipi/release/2.2.0
Release 2.2.0
2023-11-28 22:29:01 +01:00
Nicolas Meienberger
42349c5a27 fix(worker): no need to mount host 2023-11-28 22:02:52 +01:00
Nicolas Meienberger
8104a9f3f7 ci(e2e): update upgrade before running install script 2023-11-28 19:12:40 +01:00
Nicolas Meienberger
83e96cfd31 ci(releases): refactor to use non-outdated actions 2023-11-28 19:12:35 +01:00
Nicolas Meienberger
852128f551 fix(worker): default to disk 0 if /host/root not found
In order to avoid displaying 0 disk space on some systems, we default to the first disk found
2023-11-28 08:26:43 +01:00
Nicolas Meienberger
df59d21ce7
Merge pull request #879 from runtipi/release/2.1.0
Release 2.1.0
2023-11-07 22:14:38 +01:00
22 changed files with 337 additions and 2287 deletions

View file

@ -391,6 +391,15 @@
"contributions": [
"code"
]
},
{
"login": "qcoudeyr",
"name": "qcoudeyr",
"avatar_url": "https://avatars.githubusercontent.com/u/124463277?v=4",
"profile": "https://github.com/qcoudeyr",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,

View file

@ -97,7 +97,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 18
node-version: 20
- uses: pnpm/action-setup@v2.4.0
name: Install pnpm

View file

@ -97,7 +97,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 18
node-version: 20
- uses: pnpm/action-setup@v2.4.0
name: Install pnpm

View file

@ -43,7 +43,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 18
node-version: 20
- uses: pnpm/action-setup@v2.4.0
name: Install pnpm
@ -106,7 +106,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 18
node-version: 20
- uses: pnpm/action-setup@v2.4.0
name: Install pnpm

View file

@ -134,7 +134,7 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: 18
node-version: 20
- name: Create .env.e2e file with Droplet IP
run: |

View file

@ -95,7 +95,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 18
node-version: 20
- uses: pnpm/action-setup@v2.4.0
name: Install pnpm
@ -134,7 +134,7 @@ jobs:
publish-release:
runs-on: ubuntu-latest
needs: [create-tag]
needs: [create-tag, build-images, build-worker, build-cli]
outputs:
id: ${{ steps.create_release.outputs.id }}
steps:

View file

@ -1,4 +1,4 @@
ARG NODE_VERSION="18.16"
ARG NODE_VERSION="20.10"
ARG ALPINE_VERSION="3.18"
FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION} AS node_base

View file

@ -1,4 +1,4 @@
ARG NODE_VERSION="18.16"
ARG NODE_VERSION="20.10"
ARG ALPINE_VERSION="3.18"
FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION}

View file

@ -1,7 +1,7 @@
# Tipi — A personal homeserver for everyone
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-41-orange.svg?style=flat-square)](#contributors-)
[![All Contributors](https://img.shields.io/badge/all_contributors-42-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
[![License](https://img.shields.io/github/license/runtipi/runtipi)](https://github.com/runtipi/runtipi/blob/master/LICENSE)
@ -124,6 +124,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<td align="center" valign="top" width="14.28%"><a href="http://cchalop1.com"><img src="https://avatars.githubusercontent.com/u/28163855?v=4?s=100" width="100px;" alt="CHALOPIN Clément"/><br /><sub><b>CHALOPIN Clément</b></sub></a><br /><a href="https://github.com/runtipi/runtipi/commits?author=cchalop1" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geetansh"><img src="https://avatars.githubusercontent.com/u/9976198?v=4?s=100" width="100px;" alt="Geetansh Jindal"/><br /><sub><b>Geetansh Jindal</b></sub></a><br /><a href="https://github.com/runtipi/runtipi/commits?author=geetansh" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/0livier"><img src="https://avatars.githubusercontent.com/u/10607?v=4?s=100" width="100px;" alt="Olivier Garcia"/><br /><sub><b>Olivier Garcia</b></sub></a><br /><a href="https://github.com/runtipi/runtipi/commits?author=0livier" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qcoudeyr"><img src="https://avatars.githubusercontent.com/u/124463277?v=4?s=100" width="100px;" alt="qcoudeyr"/><br /><sub><b>qcoudeyr</b></sub></a><br /><a href="https://github.com/runtipi/runtipi/commits?author=qcoudeyr" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View file

@ -60,7 +60,6 @@ services:
context: .
dockerfile: ./packages/worker/Dockerfile.dev
container_name: tipi-worker
user: root
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:3000/healthcheck']
interval: 5s
@ -80,7 +79,6 @@ services:
# Dev mode
- ${PWD}/packages/worker/src:/app/packages/worker/src
# Production mode
- /:/host/root:ro
- /proc:/host/proc:ro
- /var/run/docker.sock:/var/run/docker.sock
- ${PWD}/.env:/app/.env

View file

@ -76,7 +76,6 @@ services:
environment:
NODE_ENV: production
volumes:
- /:/host/root:ro
- /proc:/host/proc
- /var/run/docker.sock:/var/run/docker.sock
- ${PWD}/.env:/app/.env

View file

@ -1,6 +1,6 @@
{
"name": "runtipi",
"version": "2.2.0",
"version": "2.2.1",
"description": "A homeserver for everyone",
"scripts": {
"knip": "knip",
@ -45,13 +45,14 @@
"@runtipi/postgres-migrations": "^5.3.0",
"@runtipi/shared": "workspace:^",
"@tabler/core": "1.0.0-beta20",
"@tabler/icons-react": "^2.40.0",
"@tabler/icons-react": "^2.42.0",
"argon2": "^0.31.2",
"bullmq": "^4.13.0",
"clsx": "^2.0.0",
"connect-redis": "^7.1.0",
"drizzle-orm": "^0.28.6",
"fs-extra": "^11.1.1",
"geist": "^1.2.0",
"let-it-go": "^1.0.0",
"lodash.merge": "^4.6.2",
"next": "14.0.1",
@ -66,7 +67,7 @@
"react-hot-toast": "^2.4.1",
"react-markdown": "^9.0.0",
"react-select": "^5.8.0",
"react-tooltip": "^5.22.0",
"react-tooltip": "^5.25.0",
"redaxios": "^0.5.1",
"redis": "^4.6.10",
"rehype-raw": "^7.0.0",
@ -94,16 +95,16 @@
"@total-typescript/shoehorn": "^0.1.1",
"@total-typescript/ts-reset": "^0.5.1",
"@types/fs-extra": "^11.0.4",
"@types/jest": "^29.5.7",
"@types/jest": "^29.5.11",
"@types/lodash.merge": "^4.6.8",
"@types/node": "20.8.10",
"@types/pg": "^8.10.7",
"@types/react": "18.2.34",
"@types/react": "18.2.39",
"@types/react-dom": "18.2.14",
"@types/semver": "^7.5.4",
"@types/uuid": "^9.0.6",
"@types/validator": "^13.11.5",
"@typescript-eslint/eslint-plugin": "^6.9.1",
"@typescript-eslint/eslint-plugin": "^6.13.1",
"@typescript-eslint/parser": "^6.10.0",
"@vitejs/plugin-react": "^4.1.1",
"@vitest/coverage-v8": "^0.34.6",
@ -111,7 +112,7 @@
"eslint": "8.52.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-typescript": "^17.1.0",
"eslint-config-next": "14.0.1",
"eslint-config-next": "14.0.3",
"eslint-config-prettier": "^9.0.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.29.0",

View file

@ -21,7 +21,7 @@ services:
tipi-db:
container_name: tipi-db
image: postgres:14
restart: on-failure
restart: unless-stopped
stop_grace_period: 1m
ports:
- ${POSTGRES_PORT:-5432}:5432
@ -60,7 +60,6 @@ services:
container_name: tipi-worker
image: ghcr.io/runtipi/worker:${TIPI_VERSION}
restart: unless-stopped
user: root
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:3000/healthcheck']
interval: 5s
@ -78,7 +77,6 @@ services:
NODE_ENV: production
volumes:
# Core
- /:/host/root:ro
- /proc:/host/proc
- /var/run/docker.sock:/var/run/docker.sock
# App

View file

@ -8,7 +8,7 @@ async function bundle() {
entryPoints: ['./src/index.ts'],
outfile: './dist/index.js',
platform: 'node',
target: 'node18',
target: 'node20',
bundle: true,
color: true,
sourcemap: commandArgs.includes('--sourcemap'),

View file

@ -8,10 +8,10 @@
"test": "dotenv -e .env.test vitest -- --coverage --watch=false --passWithNoTests",
"test:watch": "dotenv -e .env.test vitest",
"package": "npm run build && pkg package.json && chmod +x dist/bin/cli-x64 && chmod +x dist/bin/cli-arm64",
"package:m1": "npm run build && pkg package.json -t node18-darwin-arm64",
"package:m1": "npm run build && pkg package.json -t node20-darwin-arm64",
"set-version": "node -e \"require('fs').writeFileSync('assets/VERSION', process.argv[1])\"",
"build": "node build.js",
"build:meta": "esbuild ./src/index.ts --bundle --platform=node --target=node18 --outfile=dist/index.js --metafile=meta.json --analyze",
"build:meta": "esbuild ./src/index.ts --bundle --platform=node --target=node20 --outfile=dist/index.js --metafile=meta.json --analyze",
"dev": "dotenv -e ../../.env nodemon",
"lint": "eslint . --ext .ts",
"tsc": "tsc --noEmit",
@ -20,8 +20,8 @@
"pkg": {
"assets": "assets/**/*",
"targets": [
"node18-linux-x64",
"node18-linux-arm64"
"node20-linux-x64",
"node20-linux-arm64"
],
"outputPath": "dist/bin"
},
@ -30,7 +30,7 @@
"license": "ISC",
"devDependencies": {
"@faker-js/faker": "^8.2.0",
"@types/cli-progress": "^3.11.4",
"@types/cli-progress": "^3.11.5",
"@types/node": "20.8.10",
"dotenv-cli": "^7.3.0",
"esbuild": "^0.19.4",

View file

@ -1,4 +1,4 @@
ARG NODE_VERSION="18.16"
ARG NODE_VERSION="20.10"
ARG ALPINE_VERSION="3.18"
FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION} AS node_base

View file

@ -1,4 +1,4 @@
ARG NODE_VERSION="18.16"
ARG NODE_VERSION="20.10"
ARG ALPINE_VERSION="3.18"
FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION} AS node_base

View file

@ -8,7 +8,7 @@ async function bundle() {
entryPoints: ['./src/index.ts'],
outfile: './dist/index.js',
platform: 'node',
target: 'node18',
target: 'node20',
bundle: true,
color: true,
sourcemap: commandArgs.includes('--sourcemap'),

View file

@ -36,8 +36,7 @@ export class SystemExecutors {
this.logger.error(`Unable to read /host/proc/meminfo: ${e}`);
}
const disks = await si.fsSize();
const disk0 = disks.find((disk) => disk.mount.startsWith('/host/root')) || disks[0];
const [disk0] = await si.fsSize();
return {
cpu: { load: currentLoad },

2530
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -121,16 +121,12 @@ if ! command -v docker >/dev/null; then
install_docker "${OS}"
docker_result=$?
if [[ docker_result -eq 0 ]]; then
echo "Docker installed"
else
if [[ docker_result -ne 0 ]]; then
echo "Your system ${OS} is not supported trying with sub_os ${SUB_OS}"
install_docker "${SUB_OS}"
docker_sub_result=$?
if [[ docker_sub_result -eq 0 ]]; then
echo "Docker installed"
else
if [[ docker_sub_result -ne 0 ]]; then
echo "Your system ${SUB_OS} is not supported please install docker manually"
exit 1
fi
@ -138,11 +134,15 @@ if ! command -v docker >/dev/null; then
# Make sure user is in docker group
if ! groups | grep -q '\bdocker\b'; then
echo "Adding user to docker group"
sudo usermod -aG docker "$USER"
echo "✓ Docker installed. Please re-run the installation script to continue with the installation. (curl -L https://setup.runtipi.io | bash)"
fi
# Reload user groups
newgrp docker
exit 0
fi
function check_dependency_and_install() {

View file

@ -2,7 +2,7 @@ import React from 'react';
import type { Metadata } from 'next';
import { cookies } from 'next/headers';
import { Inter } from 'next/font/google';
import { GeistSans } from 'geist/font/sans';
import merge from 'lodash.merge';
import { NextIntlClientProvider } from 'next-intl';
import { getConfig } from '@/server/core/TipiConfig';
@ -13,11 +13,6 @@ import { Toaster } from 'react-hot-toast';
import { getCurrentLocale } from '../utils/getCurrentLocale';
import { ClientProviders } from './components/ClientProviders';
const inter = Inter({
subsets: ['latin'],
display: 'swap',
});
export const metadata: Metadata = {
title: 'Tipi',
description: 'Tipi',
@ -35,7 +30,7 @@ export default async function RootLayout({ children }: { children: React.ReactNo
const { allowAutoThemes } = getConfig();
return (
<html lang={locale} className={clsx(inter.className, 'border-top-wide border-primary')}>
<html lang={locale} className={clsx(GeistSans.className, 'border-top-wide border-primary')}>
<NextIntlClientProvider locale={locale} messages={mergedMessages}>
<ClientProviders initialTheme={theme?.value} cookies={cookies().getAll()} allowAutoThemes={allowAutoThemes}>
<body data-bs-theme={theme?.value}>