Commit Graph

120 Commits

Author SHA1 Message Date
Bernd Storath
9ebf2c1d33 chore: disable latest tag for docker
so old installations wont break until v15 is stable enough
2025-04-02 09:32:52 +02:00
Bernd Storath
ded148a0f5 fix docs action 2025-03-05 13:37:16 +01:00
Bernd Storath
9b29d72991 Version 15.0.0-beta.1: Rewrite in Nuxt and Typescript, Move to UI (#1333)
* Add Nuxt, ESM, Typescript (#1244)

* wip: add nuxt

* basic implementation

* add changes from c9ff248

* update workflow, add eslint

* add types, fix wrong error message

* install correct bcrypt, move eslint to dev modules

* add docker dev script

* fix styling

* add wireguard routes

* typescript, vendors

* fix lint workflow

* lint fixes

* add prettier, format

* fix lint, add vscode settings

* better typescript

* use auto imports

* add prettier eslint config

* cache config

* fix styling issue, fix formatting

* fix tailwind problems

* fix logout not showing

* fix lint action

* Fix session middleware

* split files into correct methods

* use type safe api, fix typescript errors

* better return types

not tested

* change default working directory

* update workflows

* fix error

* correct session middleware, type safe session

* convert undefined to boolean

* correct key for api errors

* use zod to validate input

* add more jobs to check for good code

* add pinia

Co-authored-by: Sergei Birukov <suxscribe@gmail.com>
Co-authored-by: Bernd Storath <bernd.storath@offizium.de>

* use color mode plugin

* !! use better storage key name

Breaking as if old key exists it breaks as "auto" is not compatible with new "system"

* better local dev while dev container is running

use `docker compose -f docker-compose.dev.yml up`
or after changing dockerfile
`docker compose -f docker-compose.dev.yml up --build`

* update translation to match new theme mode

* improve dx

new devs get extensions recommended to catch errors, etc directly in vscode

* reduce errors, improve typing

* Split components (#1)

* update: introduce pages & components

 fix lint

* update: starting split components

* use auto imports

* Improve workflows and docker

workflow fix step naming

simplify docker dev

simplify docker prod

revert to node 18

dockerfile naming scheme

* Split components (#2)

* update: starting split components

* upd: rebase & continue splitting components

- layouts: header & footer
- components: basic buttton
- pages: login page

* update: login page

* package.json: remove dev:pass script

* Split into Components, migrate to nuxt

fixup

shutdown wireguard properly

fix styling, fix store

split even more

clear interval

split even more

split even more

handle auth middleware on server

avoid flicker of login page

* fix: buttons spaces & move layouts to components (#3)

* update: icons into components

- fix: header login page

* fix: tailwind handle btn class

* Split into icons

fix avatar

move class to view not icon itself

fix icon

format

* invalidate cache to make restoreConfig work

* fix apexchart

* use different color mode module

other one resulted in hydration mismatch

* fix dialog

* fix bad i18n merge

* use nuxt 4

* fix typing, fix redirect, latest release on server

* start wireguard on start

* wait for shutdown

* improve zod errors, consistent server errors

* migrate to useFetch

this makes sure that there is no double fetching

* fix hydration issues, remove unnecessary state, rename function

* fetch globalstore globally

otherwise this will load on login to homepage

* migrate to useFetch

no javascript support

TODO: not properly tested

* update backend

* wip: frontend

* update frontend

* update pnpm lock

---------

Co-authored-by: Sergei Birukov <suxscribe@gmail.com>
Co-authored-by: Bernd Storath <bernd.storath@offizium.de>
Co-authored-by: tetuaoro <65575727+tetuaoro@users.noreply.github.com>

* Fix various issues

fix router param

fix max age

unit is seconds not ms

fix regressions

fix missing expire date in client create dialog
fix wrong type rules
fix wrong api endpoint

properly catch error running cron job

fix type issues

* add database (#1330)

* add: database abstraction

* update: get lang from database

* udpate: with repositories

* add: interfaces to connect a database provider

- easy swapping between database provider

* add: setup page

- add: in-memory database provider
- create a new account (signup)
- login with username and password
- first setup page to create an account
- PASSWORD_HASH was removed from environment and files was updated/removed due to that change

* update: Dockerfile

* fix: review done

- remove: REQUIRES_PASSWORD & RELEASE environment variables

* fix: i18n translation

- rename directories

* update: use database

* fix: typecheck

* fix: review

* rebase & add: persistent lowdb provider

* update: french translation

* revert: due to rebase

* remove & document

* Refactor New UI (#1342)

* refactor code

* refactor code

* add some todos

* update pnpm, start migrating to database

* add missing i18n key

* add todo

* basic setup styling

* nuxt 4 folder structure, update packages

* Feat: Migrations (#1344)

* add migrations

* improve migration runner

* improve migration runner

* document what each migration does

* Feat: Rewrite Wireguard to use Database (#1345)

* update wireguard

* update

* update

* remove all config

* move all features into one route

* improve code

* fix some issues

add wg_path, update documentation

* Feat: Cidr Support (#1347)

* cidr support

* add cidr

* fix some errors

fix server config

missing cidr block in server config

* Fix: Database Date type (#1349)

* Feat: IPv6 (#1354)

* start supporting ipv6

* add ipv6 support

* build server with es2020

es2019 doesn't support bigint

* fix issues, better naming

* Fix: Security (#1355)

* separate route for onboarding

* zse zod for validation

* use argon2id

* add build tools

* Feat: Server AllowedIPs, MTU (#1356)

* add wireguard helpers

* improve wireguard helpers

* add server mtu

* fix wg0.conf formatting

* add ipv6 support to docker compose and readme

* Feat: Docs (#1361)

* basic docs

* use semver versioning

* Feat: Migration (#1363)

* start migration

* improve migration

* remove endpoint from client

* improve docker

* Chore: Deprecate Dockerless (#1377)

* deprecate dockerless

* Feat: Improve Repository pattern (#1380)

* improve repository pattern

* fix errors

* Feat: Improve Database Handling (#1383)

* improve docker build

* build doc workflow

* Feat: Changelog, Release Notes (#1385)

* add changelog, use semver for update message

* use first line of release for short changelog

* load ipv6 iptables module

* Feat: Show Version in Footer (#1389)

update ui logic, always store release in global store.

new release logic uses rate limited github api, avoid using cache

* use i18n ally (#1391)

* improve gh actions

* Setup UI (#1392)

* update: setup ui page

* rebase

* remove script addition

* Fixed usage of Ukrainian instead of Russian in ru.json (#1414)

* Added translations for the Belarusian language (#1472)

* Install kmod from alpine repository (#1553)

Because the busybox modprobe utility is unable to load zstd compressed modules.

Co-authored-by: Matt <mmoore2012@users.noreply.github.com>

* WIP: Feat: UI, General Improvements (#1397)

* update: setup ui page

* remove script addition

* add admin panel

* basic user menu and admin page

* make usable admin panel

* add radix vue, improve ui

* fix features, add toast

* rewrite middleware logic, support basic auth

* add todo marker

* active tailwind forms

* remove some console.logs

* check if user is enabled

frontend doesn't handle this state yet, nothing will work as api routes will fail

* add email to user, basic account page

* better group database

* group even more

* basic statistics page

* update: admin ui

- add: common panel components to get same UI
- i18n: french

* update: setup page error handle

- use fetch error data to provide error message
- use translation to provider error message

* update: me page

* fix: :text props

* update: login page

* update: i18n french support

* fix: use radix toast duration

* update: reduce templates

- remake: setup page to add others step configuration (host/port/migration)

* udpate: setup page use wizard form step

* update: ui

* update: step page

- first step to choose a language
- use red color in light mode
- validate step before move toward

* update: setup page

- use radix select component to reduce boilerplate

* update: setup page

- add: database langugage method
- update: api lang & export supported languages

* update: setup page

- update ui select language
- change lang on selection

* fix: use global store

* fix: initial value

- update: sort langs by value

* fix: ui center paragraph

* fix: remove file extension & some revert

- add: script to run checks script

* update: setup page

- add: host/port section
- i18n: french
- fix: fallback translation

* refactor: split setup into files

* update: setup page

- redirect to login when the setup is done
- allow user to return to previous steps
- prompt error message
- i18n french

* add: migration UI step

- rename: components
- fix: label for & form child id
- i18n french sup

* add: migration server

* fix: use string instead of File

* improve: with zod validation

* restore: clients

* rework setup

* add client page, move api routes

* improve setup

* switch to agpl

* add step back

* update licensed under texts

cc -> agpl

* make db results readonly

avoid weird side effects, when modifying the db object as its only allowed inside e.g. lowdb.ts

* update footer links

* improve client edit page, add mtu

* reorder tailwind classes

* update packages

* update comments

* better toast, better avatar

* delete feature toggle

* remove chart, statistics from server

let user decide what he wants to display

* move into own components

* switch from AGPL-3.0-or-later to AGPL-3.0-only

AGPL-3.0-or-later is not OSI approved

* fix building source

fixes https://github.com/wg-easy/wg-easy/issues/1563

* update packages

---------

Co-authored-by: tetuaoro <65575727+tetuaoro@users.noreply.github.com>

* update readme

* Feat: Settings, UI, General Improvements (#1572)

* deprecate other languages

new ui has too many new strings

* fix wrong license in readme

* properly fetch release

* order safe data structure for migrations

* empty server allowed ips by default

* show userconfig in admin panel

* remove routes, fix config

* add ability to update clients

* handle form submit using js

avoid weird behavior with FormData

* global toast, be able to update client

* update packages

* fix date field

* delete client using radix dialog

* remove lang from backend, let users decide

* be able to change interface and general

* be able to update user config

* consistent allowedips

* fix array field

* improve avatar, code cleanup

* basic metrics support

* remove dateTime helper

* be able to change hooks

* start cidr update

* be able to update cidr

* Feat: SQLite (#1619)

* start drizzle migration

* split schema

* improve schema

* improve schema, cascade, unique

* improve structure, start migration

* migrate to sqlite

* work in prod docker

* start adding a better permission handler

* permission matrix, permission handler

* update packages

* move session timeout to session config, use new permission handler

* improve docker dev

only install dependencies if changed

* implement setup

* migrate to sqlite

* improve debug, fix custom migration

* migrate to sqlite

* regenerate migrations

* ignore autogenerated migrations from prettier

* migrate to sqlite

* migrate to sqlite

* Migrate to sqlite

* fix prod error

* move nuxt middleware from server to nuxt

* update corepack in prod dockerfile

* use correct branch for workflow

* make docker file build on armv6/v7

* fix client update

* update zod locales

* cancel pr workflow if new commit

* test concurrency

* Feat: Account (#1645)

* be able to change name, email

* be able to change password

* consistent naming

zod is a schema not a type

* use transaction instance

* add zod strings

* Feat: Prometheus (#1655)

* check metrics password

* rewrite prometheus and json metric endpoints

* move metrics to general

metrics is not per interface

* change metrics settings in admin panel

* add i18n keys

* Chore: Remove multi interface support (#1657)

* streamline references to wg0

database wg0 name makes no sense anymore
wg0 only in database, could be easily replaced, or support for custom name added

* fix default key gen

* Feat: Permission System (#1660)

* wip: add abac

* wip: add admin abac

* add me abac

* fix type issue

* move from role check

avoid authStore.userData?.role === roles.ADMIN

* Feat: Zod Generic String (#1661)

* start improving zod translations

* update zod translations

* Feat: Migration (#1663)

* show error for old env vars

* reorder setup, be able to migrate

* fix type issue

* footer and header in setup, remove lang setup step

* remove backup / restore

* refactor dialog (#1665)

* fixed Dockerfile HEALTHCHECK syntax (#1686)

HEALTHCHECK options should always come before the CMD instruction

* Feat: Info (#1666)

* add tooltip info, extract strings

* multi type toast

* improve useSubmit, i18n

* better login screen

* improve

* consistent folder casing

* consistent casing

* fix even more stuff

* temp

* fix type errors

* remove armv6/7 support for now

* add information to client page

* optimize dockerfile

* update base image in Dockerfile to use node:lts-alpine

* fix build stage

* Chore: TODOs (#1695)

* verify setup step

* improve readme

* format todos

* move id

* remove objectMessage

* style array field

* Chore: TODOs (#1696)

* fix chart

* replace localstorage with cookies

* Chore: Improvments (#1697)

* update packages

* fix tab issues

* consistent imports

* use eslint module

* update date

* improve docs

* update docs

* format

* fix docs, fix cookie

* recognize timing attack potential

* improve gh actions, issue templates (#1700)

* Feat improv (#1702)

* add insecure option, link readme to docs

* improve docs

* update version

* add warning to readme

---------

Co-authored-by: Sergei Birukov <suxscribe@gmail.com>
Co-authored-by: Bernd Storath <bernd.storath@offizium.de>
Co-authored-by: tetuaoro <65575727+tetuaoro@users.noreply.github.com>
Co-authored-by: laperuz92 <31198184+laperuz92@users.noreply.github.com>
Co-authored-by: Siomkin Alexander <siomkin.alexander@gmail.com>
Co-authored-by: Matt <102529127+mmoore2012@users.noreply.github.com>
Co-authored-by: Matt <mmoore2012@users.noreply.github.com>
Co-authored-by: Denis Kazimirov <rokiden@users.noreply.github.com>
2025-03-05 13:06:31 +01:00
Philip H.
e2fe3b8b32 fixup: deploy.yml
echo moved by a mistake
2024-09-09 15:31:18 +02:00
Philip H.
c0fbc3f647 Update deploy.yml 2024-09-09 13:33:52 +02:00
Philip H
067b7bcf84 CI: fixup dev deploy too
Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
2024-09-06 16:39:34 +02:00
Philip H.
942f35916c deploy-nightly.yml: reference to master branch 2024-09-06 16:35:03 +02:00
Philip H.
4dc56a0718 CI: use dependabot instead of gh action (#1364) 2024-09-06 16:26:27 +02:00
Philip H
352a022f30 nodejs: use lts as version tag
Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
2024-08-19 14:30:41 +02:00
Dartegnian
d5b8d707ef Get the version info inside the release object 2024-07-23 13:01:08 +08:00
dependabot[bot]
d31524a531 build(deps): bump docker/build-push-action from 5 to 6
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 04:23:33 +00:00
Philip H
2a102eea93 deploy-development.yml: disable pull request
until we can deploy on other branches from contributors/authors
2024-06-16 19:02:32 +02:00
Philip H
85913b71ed CI: no cache-dependency-path
it's useless and can lead to confusion
2024-06-16 16:25:51 +02:00
pheiduck
3032163814 bump to node 20 2024-04-19 17:12:07 +02:00
Philip H
e43688a091 npm: revert update-browserslist-db
is not needed
2024-04-18 18:50:29 +02:00
Philip H
c29ba35d41 npm: update-browserslist-db 2024-04-18 18:47:52 +02:00
Philip H
11a56ffdc5 needed for testing on our test branches 2024-03-13 13:12:16 +01:00
Philip H
bad7bff98e Update deploy-pr.yml 2024-03-13 13:09:32 +01:00
Philip H
a4c3bf0291 PR: Build Docker images
Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
2024-03-13 13:05:08 +01:00
Philip H
df882770ad deploy-development.yml: able to deploy dev up on pull request 2024-03-11 16:33:48 +01:00
Philip H
a9cd3071c8 npm-update-bot.yml: check for updates every monday 2024-03-09 18:21:44 +01:00
pheiduck
6788d98d9d CI: restrict workflows to only run on owner repository 2024-02-04 22:54:34 +01:00
Philip H
4f3479c89e stale.yml: revert to 100 ops otherwise some of them are skipped 2024-01-29 15:58:52 +01:00
Peter Lewis
1ed6449ea7 Update stale.yml
#416
2024-01-24 21:35:16 +00:00
Philip H
1bfbd4720a revert deploy-development.yml
was for testing
2024-01-19 08:29:49 +01:00
Philip H
187c3ee007 deploy-development.yml: set release number for testing
will be disabled after testing
2024-01-19 08:09:28 +01:00
Philip H.
2df3e6cb42 update: app.css to match latest tailwindcss version 2024-01-19 05:15:12 +00:00
Philip H
c2e64329af stale.yml: do 5 operation per run
[Best practices for using the REST API](https://docs.github.com/en/rest/using-the-rest-api/best-practices-for-using-the-rest-api?apiVersion=2022-11-28)
2024-01-10 12:54:46 +01:00
Philip H
8ee6ae86cb stale.yml: update to v9
https://github.com/actions/stale/releases/tag/v9
2024-01-07 15:44:01 +01:00
Philip H
93324072d3 deploy-nightly.yml: Release number is not provieded
Remove unused: `Set environment variables` Step on deploy-nightly CI
2024-01-06 23:02:27 +01:00
Philip H
50fdc14e2b npm-update-bot.yml: cleanup 2024-01-05 19:14:25 +01:00
Philip H
500d349892 npm-update-bot.yml: always checkout to master branch 2024-01-05 10:00:22 +01:00
Philip H
8a2f405daa npm-update-bot.yml: always checkout to 'wg-easy/wg-easy' 2024-01-05 09:57:30 +01:00
Philip H
cea05caa53 npm-update-bot.yml: revert: only push on master from wg-easy 2024-01-05 09:53:14 +01:00
Philip H
924e0b0353 npm-update-bot.yml: add git checkout master 2024-01-05 00:44:13 +01:00
Philip H
8d8dd516dd npm-update-bot.yml: fixup clone 'wg-easy/wg-easy' 2024-01-05 00:01:28 +01:00
Philip H
e39eef2a37 npm-update-bot.yml: only push on master from wg-easy 2024-01-04 16:52:35 +01:00
Philip H
280fc9f095 npm-update-bot.yml: only push to master of wg-easy/wg-easy 2024-01-04 15:19:29 +01:00
Astound
c99c9375b2 Remove blank spaces 2023-12-25 06:48:20 +08:00
Philip H
c772427d4a Merge branch 'production' into master 2023-12-22 11:34:03 +01:00
Peter Lewis
c67f1cf5b5 Update deploy-development.yml 2023-12-21 22:17:13 +00:00
Peter Lewis
d8e58b69bb Update nightly to actually deploy nightly
Midnight on the nose (or 5 minutes either side, if we're following GitHub documentation) feels a suitably memorable delinator, in terms of knowing when new nightly builds are landing!
2023-12-21 20:36:47 +00:00
Peter Lewis
22a38baf7d Remove versioning from nightly build 2023-12-21 20:33:28 +00:00
Peter Lewis
7c52810476 Rename to make action more clearer 2023-12-21 19:52:20 +00:00
Peter Lewis
66c79b6740 Update deploy-development.yml 2023-12-21 19:52:04 +00:00
Peter Lewis
35bb2e2adf Rename to make action more clearer 2023-12-21 19:51:17 +00:00
Peter Lewis
1a2a8740cc Add Development GitHub Action 2023-12-21 19:46:31 +00:00
Philip H
e2339a4a9d Merge pull request #688 from wg-easy/cleanup
remove npm config set and notes
2023-12-21 20:22:20 +01:00
Peter Lewis
8f0e92715e Rename deploy-development.yml to deploy-nightly.yml 2023-12-21 18:41:57 +00:00
Philip H.
f27f1f89bd remove npm config 2023-12-21 18:25:14 +00:00