Compare commits

..

1 commit

Author SHA1 Message Date
dependabot[bot]
d13d8f5a3a
chore(deps): bump log-update from 5.0.1 to 6.0.0
Bumps [log-update](https://github.com/sindresorhus/log-update) from 5.0.1 to 6.0.0.
- [Release notes](https://github.com/sindresorhus/log-update/releases)
- [Commits](https://github.com/sindresorhus/log-update/compare/v5.0.1...v6.0.0)

---
updated-dependencies:
- dependency-name: log-update
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 07:45:46 +00:00
12 changed files with 91 additions and 73 deletions

View file

@ -391,15 +391,6 @@
"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

@ -134,7 +134,7 @@ jobs:
publish-release:
runs-on: ubuntu-latest
needs: [create-tag, build-images, build-worker, build-cli]
needs: [create-tag]
outputs:
id: ${{ steps.create_release.outputs.id }}
steps:

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-42-orange.svg?style=flat-square)](#contributors-)
[![All Contributors](https://img.shields.io/badge/all_contributors-41-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,7 +124,6 @@ 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,6 +60,7 @@ services:
context: .
dockerfile: ./packages/worker/Dockerfile.dev
container_name: tipi-worker
user: root
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:3000/healthcheck']
interval: 5s
@ -79,6 +80,7 @@ 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,6 +76,7 @@ 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.1",
"version": "2.2.0",
"description": "A homeserver for everyone",
"scripts": {
"knip": "knip",
@ -52,7 +52,6 @@
"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",
@ -67,7 +66,7 @@
"react-hot-toast": "^2.4.1",
"react-markdown": "^9.0.0",
"react-select": "^5.8.0",
"react-tooltip": "^5.25.0",
"react-tooltip": "^5.22.0",
"redaxios": "^0.5.1",
"redis": "^4.6.10",
"rehype-raw": "^7.0.0",
@ -95,7 +94,7 @@
"@total-typescript/shoehorn": "^0.1.1",
"@total-typescript/ts-reset": "^0.5.1",
"@types/fs-extra": "^11.0.4",
"@types/jest": "^29.5.11",
"@types/jest": "^29.5.7",
"@types/lodash.merge": "^4.6.8",
"@types/node": "20.8.10",
"@types/pg": "^8.10.7",

View file

@ -21,7 +21,7 @@ services:
tipi-db:
container_name: tipi-db
image: postgres:14
restart: unless-stopped
restart: on-failure
stop_grace_period: 1m
ports:
- ${POSTGRES_PORT:-5432}:5432
@ -60,6 +60,7 @@ 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
@ -77,6 +78,7 @@ services:
NODE_ENV: production
volumes:
# Core
- /:/host/root:ro
- /proc:/host/proc
- /var/run/docker.sock:/var/run/docker.sock
# App

View file

@ -53,7 +53,7 @@
"cli-spinners": "^2.9.1",
"commander": "^11.1.0",
"dotenv": "^16.3.1",
"log-update": "^5.0.1",
"log-update": "^6.0.0",
"semver": "^7.5.4",
"zod": "^3.22.4"
}

View file

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

View file

@ -68,9 +68,6 @@ importers:
fs-extra:
specifier: ^11.1.1
version: 11.1.1
geist:
specifier: ^1.2.0
version: 1.2.0(next@14.0.1)
let-it-go:
specifier: ^1.0.0
version: 1.0.0
@ -114,8 +111,8 @@ importers:
specifier: ^5.8.0
version: 5.8.0(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0)
react-tooltip:
specifier: ^5.25.0
version: 5.25.0(react-dom@18.2.0)(react@18.2.0)
specifier: ^5.22.0
version: 5.22.0(react-dom@18.2.0)(react@18.2.0)
redaxios:
specifier: ^0.5.1
version: 0.5.1
@ -176,7 +173,7 @@ importers:
version: 9.3.3
'@testing-library/jest-dom':
specifier: ^6.1.4
version: 6.1.4(@types/jest@29.5.11)(jest@29.7.0)(vitest@0.34.6)
version: 6.1.4(@types/jest@29.5.7)(jest@29.7.0)(vitest@0.34.6)
'@testing-library/react':
specifier: ^14.0.0
version: 14.0.0(react-dom@18.2.0)(react@18.2.0)
@ -193,8 +190,8 @@ importers:
specifier: ^11.0.4
version: 11.0.4
'@types/jest':
specifier: ^29.5.11
version: 29.5.11
specifier: ^29.5.7
version: 29.5.7
'@types/lodash.merge':
specifier: ^4.6.8
version: 4.6.8
@ -346,8 +343,8 @@ importers:
specifier: ^16.3.1
version: 16.3.1
log-update:
specifier: ^5.0.1
version: 5.0.1
specifier: ^6.0.0
version: 6.0.0
semver:
specifier: ^7.5.4
version: 7.5.4
@ -3056,7 +3053,7 @@ packages:
pretty-format: 27.5.1
dev: true
/@testing-library/jest-dom@6.1.4(@types/jest@29.5.11)(jest@29.7.0)(vitest@0.34.6):
/@testing-library/jest-dom@6.1.4(@types/jest@29.5.7)(jest@29.7.0)(vitest@0.34.6):
resolution: {integrity: sha512-wpoYrCYwSZ5/AxcrjLxJmCU6I5QAJXslEeSiMQqaWmP2Kzpd1LvF/qxmAIW2qposULGWq2gw30GgVNFLSc2Jnw==}
engines: {node: '>=14', npm: '>=6', yarn: '>=1'}
peerDependencies:
@ -3076,7 +3073,7 @@ packages:
dependencies:
'@adobe/css-tools': 4.3.1
'@babel/runtime': 7.22.6
'@types/jest': 29.5.11
'@types/jest': 29.5.7
aria-query: 5.1.3
chalk: 3.0.0
css.escape: 1.5.1
@ -3242,8 +3239,8 @@ packages:
'@types/istanbul-lib-report': 3.0.0
dev: true
/@types/jest@29.5.11:
resolution: {integrity: sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==}
/@types/jest@29.5.7:
resolution: {integrity: sha512-HLyetab6KVPSiF+7pFcUyMeLsx25LDNDemw9mGsJBkai/oouwrjTycocSDYopMEwFhN2Y4s9oPyOCZNofgSt2g==}
dependencies:
expect: 29.7.0
pretty-format: 29.7.0
@ -3810,11 +3807,11 @@ packages:
type-fest: 0.21.3
dev: true
/ansi-escapes@5.0.0:
resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==}
engines: {node: '>=12'}
/ansi-escapes@6.2.0:
resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==}
engines: {node: '>=14.16'}
dependencies:
type-fest: 1.4.0
type-fest: 3.13.1
dev: false
/ansi-regex@5.0.1:
@ -5075,6 +5072,10 @@ packages:
engines: {node: '>=12'}
dev: true
/emoji-regex@10.3.0:
resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==}
dev: false
/emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@ -6037,14 +6038,6 @@ packages:
wide-align: 1.1.5
dev: false
/geist@1.2.0(next@14.0.1):
resolution: {integrity: sha512-RZsgCkGnSi1IV1Ozg3s6Ou4r/jzLff9+47ChjpJ5yX8ncEC/RwdStGwhdFzDcnSv0xU0+9J/fTX5Kht0NajTXA==}
peerDependencies:
next: ^13.2 || ^14
dependencies:
next: 14.0.1(@babel/core@7.23.2)(react-dom@18.2.0)(react@18.2.0)(sass@1.69.5)
dev: false
/generic-pool@3.9.0:
resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==}
engines: {node: '>= 4'}
@ -6059,6 +6052,11 @@ packages:
engines: {node: 6.* || 8.* || >= 10.*}
dev: true
/get-east-asian-width@1.2.0:
resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==}
engines: {node: '>=18'}
dev: false
/get-func-name@2.0.2:
resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
dev: true
@ -6704,9 +6702,11 @@ packages:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
/is-fullwidth-code-point@4.0.0:
resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
engines: {node: '>=12'}
/is-fullwidth-code-point@5.0.0:
resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
engines: {node: '>=18'}
dependencies:
get-east-asian-width: 1.2.0
dev: false
/is-generator-fn@2.1.0:
@ -7689,15 +7689,15 @@ packages:
is-unicode-supported: 0.1.0
dev: true
/log-update@5.0.1:
resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
/log-update@6.0.0:
resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==}
engines: {node: '>=18'}
dependencies:
ansi-escapes: 5.0.0
ansi-escapes: 6.2.0
cli-cursor: 4.0.0
slice-ansi: 5.0.0
slice-ansi: 7.1.0
strip-ansi: 7.1.0
wrap-ansi: 8.1.0
wrap-ansi: 9.0.0
dev: false
/logform@2.5.1:
@ -9508,8 +9508,8 @@ packages:
tslib: 2.6.2
dev: false
/react-tooltip@5.25.0(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-/eGhmlwbHlJrVoUe75fb58rJfAy9aZnTvQAK9ZUPM0n9mmBGpEk13vDPiQVCeUuax+fBej+7JPsUXlhzaySc7w==}
/react-tooltip@5.22.0(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-xbJBRY1LyHYd7j00UeBOqZR9SH/1S47Pe+m8vM1a+ZXglkeSNnBt5YYoPttU/amjC/VZJAPQ8+2B9x8Fl8U1qA==}
peerDependencies:
react: '>=16.14.0'
react-dom: '>=16.14.0'
@ -9993,12 +9993,12 @@ packages:
engines: {node: '>=12'}
dev: true
/slice-ansi@5.0.0:
resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
engines: {node: '>=12'}
/slice-ansi@7.1.0:
resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
engines: {node: '>=18'}
dependencies:
ansi-styles: 6.2.1
is-fullwidth-code-point: 4.0.0
is-fullwidth-code-point: 5.0.0
dev: false
/source-map-js@1.0.2:
@ -10141,6 +10141,15 @@ packages:
emoji-regex: 9.2.2
strip-ansi: 7.1.0
/string-width@7.0.0:
resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==}
engines: {node: '>=18'}
dependencies:
emoji-regex: 10.3.0
get-east-asian-width: 1.2.0
strip-ansi: 7.1.0
dev: false
/string.fromcodepoint@0.2.1:
resolution: {integrity: sha512-n69H31OnxSGSZyZbgBlvYIXlrMhJQ0dQAX1js1QDhpaUH6zmU3QYlj07bCwCNlPOu3oRXIubGPl2gDGnHsiCqg==}
dev: true
@ -10669,15 +10678,15 @@ packages:
engines: {node: '>=8'}
dev: true
/type-fest@1.4.0:
resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
engines: {node: '>=10'}
dev: false
/type-fest@2.19.0:
resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
engines: {node: '>=12.20'}
/type-fest@3.13.1:
resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==}
engines: {node: '>=14.16'}
dev: false
/typed-array-buffer@1.0.0:
resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
engines: {node: '>= 0.4'}
@ -11339,6 +11348,15 @@ packages:
string-width: 5.1.2
strip-ansi: 7.1.0
/wrap-ansi@9.0.0:
resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==}
engines: {node: '>=18'}
dependencies:
ansi-styles: 6.2.1
string-width: 7.0.0
strip-ansi: 7.1.0
dev: false
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}

View file

@ -121,12 +121,16 @@ if ! command -v docker >/dev/null; then
install_docker "${OS}"
docker_result=$?
if [[ docker_result -ne 0 ]]; then
if [[ docker_result -eq 0 ]]; then
echo "Docker installed"
else
echo "Your system ${OS} is not supported trying with sub_os ${SUB_OS}"
install_docker "${SUB_OS}"
docker_sub_result=$?
if [[ docker_sub_result -ne 0 ]]; then
if [[ docker_sub_result -eq 0 ]]; then
echo "Docker installed"
else
echo "Your system ${SUB_OS} is not supported please install docker manually"
exit 1
fi
@ -134,15 +138,11 @@ 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 { GeistSans } from 'geist/font/sans';
import { Inter } from 'next/font/google';
import merge from 'lodash.merge';
import { NextIntlClientProvider } from 'next-intl';
import { getConfig } from '@/server/core/TipiConfig';
@ -13,6 +13,11 @@ 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',
@ -30,7 +35,7 @@ export default async function RootLayout({ children }: { children: React.ReactNo
const { allowAutoThemes } = getConfig();
return (
<html lang={locale} className={clsx(GeistSans.className, 'border-top-wide border-primary')}>
<html lang={locale} className={clsx(inter.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}>