Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
8f67320
refactor: init new project structure
albanm Jan 6, 2026
d11e007
chore: upgrade github and husky configs
albanm Jan 6, 2026
139ba31
chore: work on adapting code
albanm Jan 6, 2026
d7889b8
refactor: work on scripts
albanm Jan 7, 2026
1869b3c
feat: add restricted list of ips for backup download
albanm Jan 7, 2026
7372669
refactor: upgrade ui
albanm Jan 7, 2026
8381b89
chore: broken dockerfile
albanm Jan 7, 2026
a447192
chore: missing env var config
albanm Jan 7, 2026
bd64c5a
chore: missing env var config
albanm Jan 7, 2026
b870005
chore: config schema
albanm Jan 7, 2026
31a0327
chore: without autotask
albanm Jan 7, 2026
41c4977
chore: autotask
albanm Jan 7, 2026
24c2352
chore: user node is not compatible with existing volumes
albanm Jan 7, 2026
6cddc43
chore: change path resolution logic
albanm Jan 8, 2026
9da6168
chore: logs
albanm Jan 8, 2026
47ee138
chore: error logging
albanm Jan 8, 2026
ff63275
chore: logs
albanm Jan 8, 2026
d588326
chore: logs
albanm Jan 8, 2026
cdcbd78
chore: logs
albanm Jan 8, 2026
da6a541
chore: logs
albanm Jan 8, 2026
ad6dec2
chore: better exec
albanm Jan 8, 2026
5c3aaa3
chore: better exec
albanm Jan 8, 2026
b68008e
chore: missing deps in docker image
albanm Jan 8, 2026
69779bf
fix: broken mongodump
albanm Jan 8, 2026
aab21c3
chore: call eventsQueue stop
albanm Jan 8, 2026
cfa634c
chore: mongodump command
albanm Jan 8, 2026
7f16a7b
chore: mongodump command
albanm Jan 8, 2026
08f8df1
fix: exec async behavior
albanm Jan 9, 2026
adfe3dd
chore: debug
albanm Jan 9, 2026
c6fb60f
chore: debug
albanm Jan 9, 2026
bf79e88
chore: debug
albanm Jan 9, 2026
b1435ed
chore: debug
albanm Jan 9, 2026
4453752
chore: debug
albanm Jan 9, 2026
523d899
chore: trim cmd
albanm Jan 9, 2026
fb772a5
fix: escape mongo uri on dump command
albanm Jan 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
data/
node_modules
.nuxt
nuxt-dist
.output
data
23 changes: 23 additions & 0 deletions .github/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# configure github generated release notes
# https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes#configuring-automatically-generated-release-notes
# uses labels that can be affected implicitly based on PR titles, see workflow/conventional-label.yaml

changelog:
exclude:
labels:
- ignore-for-release
authors:
- octocat
categories:
- title: Breaking Changes 🛠
labels:
- breaking
- title: New Features 🎉
labels:
- feature
- title: Fixes 🔧
labels:
- fix
- title: Other Changes
labels:
- "*"
59 changes: 0 additions & 59 deletions .github/workflows/build.yml

This file was deleted.

21 changes: 21 additions & 0 deletions .github/workflows/commits.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# no need to run quality checks on every small commit, husky already did it on the dev computer
# in this case we simply build the docker image

name: Build simple commit

on:
push:
branches: ['*']
tags-ignore: [ 'v*.*.*' ]

jobs:
build:
uses: ./.github/workflows/reuse-build.yml

deploy:
needs: build
runs-on: ubuntu-latest
steps:
- name: Send Keel notifications to staging-koumoul.com
run: |
curl -s --fail --show-error -X POST https://keel.admin.staging-koumoul.com/v1/webhooks/native -u ${{ secrets.KEEL_STAGING_USER }}:${{ secrets.KEEL_STAGING_PASSWORD }} -d '{"name": "ghcr.io/${{ github.repository }}", "tag": "${{ github.ref_name }}"}'
12 changes: 12 additions & 0 deletions .github/workflows/conventional-label.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# automatic labelling of pull request based on conventional commit names in the PR titles
# see https://github.com/marketplace/actions/conventional-release-labels

on:
pull_request_target:
types: [ opened, edited ]
name: conventional-release-labels
jobs:
label:
runs-on: ubuntu-latest
steps:
- uses: bcoe/conventional-release-labels@v1
9 changes: 9 additions & 0 deletions .github/workflows/pull-requests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# for pull requests we do not build a docker image, we simply run quality checks

name: Check pull requests

on: pull_request

jobs:
quality:
uses: ./.github/workflows/reuse-quality.yml
27 changes: 27 additions & 0 deletions .github/workflows/releases.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# for releases we run in sequence the qualityt checks and the build

name: Build release

on:
push:
tags: [ 'v*.*.*' ]

jobs:
quality:
uses: ./.github/workflows/reuse-quality.yml

build:
needs: quality
uses: ./.github/workflows/reuse-build.yml

deploy:
needs: build
runs-on: ubuntu-latest
steps:
- id: get_version
uses: battila7/get-version-action@v2

- name: Send Keel notifications to koumoul.com
run: |
curl -s --fail --show-error -X POST https://keel.admin.koumoul.com/v1/webhooks/native -u ${{ secrets.KEEL_PROD_USER }}:${{ secrets.KEEL_PROD_PASSWORD }} -d '{"name": "ghcr.io/${{ github.repository }}", "tag": "${{ steps.get_version.outputs.major }}"}'

51 changes: 51 additions & 0 deletions .github/workflows/reuse-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Build

on:
workflow_call:

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout git repository
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to Github container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Prepare BUILD.json
run: |
echo '{"version": "${{github.ref_name}}", "repository": "${{github.server_url}}/${{github.repository}}", "commit": "${{github.sha}}", "date": "'$(date -Is)'"}' > BUILD.json
cat BUILD.json

- name: Prepare docker tags for main image
id: docker_meta_main
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}

- name: Build and push main image
id: docker_build_main
uses: docker/build-push-action@v5
with:
context: .
push: true
target: main
tags: ${{ steps.docker_meta_main.outputs.tags }}
platforms: linux/amd64
labels: ${{ steps.docker_meta_main.outputs.labels }}
cache-from: type=registry,ref=ghcr.io/${{ github.repository }}/buildcache
cache-to: type=registry,ref=ghcr.io/${{ github.repository }}/buildcache,mode=max
22 changes: 22 additions & 0 deletions .github/workflows/reuse-quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Quality checks

on:
workflow_call:

jobs:
quality:
runs-on: ubuntu-latest
steps:
- name: Checkout git repository
uses: actions/checkout@v4

- uses: actions/setup-node@v3
with:
node-version: 22
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Run quality checks
run: npm run quality
8 changes: 2 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
data/
node_modules/
.nuxt
dist
nuxt-dist

public/assets/css/
public/assets/fonts/
api/config/local-*
.type/
1 change: 1 addition & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npx --no-install commitlint --edit ""
1 change: 1 addition & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npm run lint
1 change: 1 addition & 0 deletions .husky/pre-push
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npm run quality
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v16.13.0
24
28 changes: 28 additions & 0 deletions .zellij.kdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
layout {
pane {
split_direction "vertical"
pane name="backup" borderless=true {
command "bash"
args "-ic" "nvm use > /dev/null 2>&1 && bash"
}
pane name="deps" {
command "bash"
args "-ic" "npm run dev-deps && watch -n 4 \"docker compose ps --all --format 'table {{.Name}}\t{{.Status}}'\""
}
}
pane {
split_direction "vertical"
pane name="ui" {
command "bash"
args "-ic" "nvm use > /dev/null 2>&1 && npm -w ui run dev"
}
pane name="api" {
command "bash"
args "-ic" "nvm use > /dev/null 2>&1 && npm -w api run dev"
}
}
pane size=2 borderless=true {
command "bash"
args "-ic" "echo -n -e \"Dev server available at \\e[1;96mhttp://localhost:5609\\033[0m\""
}
}
54 changes: 54 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Contribution guidelines

## Prerequisites

- A Javascript/Typescript IDE with [Vue.js](https://vuejs.org/) and [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) support.
- A recent [Docker](https://docs.docker.com/engine/install/) installation.
- [Node.js v22+](https://nodejs.org/)

## Install dependencies

Install npm dependencies for all workspaces:
```
npm install
```

Pull images at first and then once in a while:

```bash
ddocker compose pull
```

## Run the development servers

The UI is a [nuxt](https://nuxt.com/) project.

The API is a small [https://expressjs.com](Express) server.

The recommended way to run the development servers is to use [zellij](https://zellij.dev/):

```
npm run dev-zellij
```

To send notifications in the dev environment you can edit en run [send-notifications.ts](dev/scripts/send-notifications.ts):

```
npm run dev-send-notifications
```

## Working on types

Update the types based on schemas:

```
npm run build-types
```

## Building docker images

Build images:

```
docker build --progress=plain --target=main -t data-fair/backup:dev .
```
Loading