Compare commits

...

1115 Commits

Author SHA1 Message Date
Donald Zou 481fadc7fc Build 2025-04-23 02:15:05 +08:00
Donald Zou 44f2c59e56 Merge pull request #679 from donaldzou/v4.2-dev
V4.2 dev
2025-04-23 02:13:39 +08:00
Donald Zou 83589a912f Update README.md 2025-04-22 22:34:09 +08:00
Donald Zou fab9f03e7d Update README.md 2025-04-22 22:33:22 +08:00
Donald Zou 928c83b13c Update README.md 2025-04-22 22:26:29 +08:00
Donald Zou 72f20bc69b Update README.md 2025-04-22 22:26:01 +08:00
Donald Zou 8293d5379d Update README.md 2025-04-22 22:23:11 +08:00
Donald Zou 1d29445a8b Merge branch 'v4.2-dev' of https://github.com/donaldzou/WGDashboard into v4.2-dev 2025-04-22 18:42:22 +08:00
Donald Zou 5c308d757f Update wgd.sh and removed SSL-TLS from Gunicorn 2025-04-22 18:42:08 +08:00
Donald Zou 5bf16004c9 Merge branch 'main' into v4.2-dev 2025-04-21 18:11:09 +08:00
Donald Zou 417fa437b7 Update 2025-04-21 17:25:12 +08:00
Donald Zou 43f893c921 Update 2025-04-21 15:59:42 +08:00
Donald Zou 8ad9af4bc2 Added Belarusian to v4.2 2025-04-20 15:47:24 +08:00
Donald Zou b3931bdc9d Merge pull request #646 from Bardatsky/main
added Belarusian language
2025-04-20 15:46:27 +08:00
Donald Zou 7ac153848b Merge branch 'main' into main 2025-04-20 15:45:18 +08:00
Donald Zou 7689ebcac5 Update 2025-04-20 02:52:22 +08:00
Donald Zou bf7adf9ca9 Build 2025-04-20 02:46:32 +08:00
Donald Zou 51ab8c556a Sorting language available automatically 2025-04-20 02:40:36 +08:00
Donald Zou 149a8e910d Merged latest locale from main 2025-04-20 02:37:54 +08:00
Donald Zou 310746b8cd Merge pull request #676 from donaldzou/DaanSelen-patch-1
Update active_languages.json
2025-04-19 22:26:28 +08:00
Donald Zou 6681303450 Adjusted some API endpoint 2025-04-19 02:54:47 +08:00
dselen 3228f37f09 Merge branch 'main' into DaanSelen-patch-1 2025-04-17 23:04:26 +02:00
dselen 421785bf6a Merge pull request #675 from mahdiMGF2/main
added Farsi language
2025-04-17 23:01:50 +02:00
Mahdi 308e8ca8c7 The Persian language was organized based on the alphabet. 2025-04-13 15:14:01 +03:30
daanselen cb068ef70e Reordering on lang_name 2025-04-13 12:02:35 +02:00
dselen acd3ec782f Update active_languages.json
Alphabetical
2025-04-13 11:40:14 +02:00
Mahdi 12d1e5b8d0 added Farsi language 2025-04-11 09:04:02 +03:30
dselen b165cdbd79 Merge pull request #672 from Jumala9163/jumala9163/locale/japanese
Add Japanese Language
2025-04-07 16:05:17 +02:00
Donald Zou 66f4507dee Refactored some API endpoint 2025-04-07 18:45:12 +08:00
Donald Zou a724e1cb58 Update README.md 2025-04-07 17:41:12 +08:00
Donald Zou f942809de0 Update README.md
Added DO as sponsor!
2025-04-07 15:14:07 +08:00
Donald Zou 8043f77e02 Update README.md 2025-04-06 05:32:15 +08:00
Jumala9163 1db9ba90d8 fix typo 2025-04-06 00:23:30 +09:00
Jumala9163 464fa59cb6 Add Japanese(ja-jp) Language 2025-04-06 00:12:00 +09:00
Donald Zou a8e2cbf55b Update README.md 2025-04-05 22:38:20 +08:00
Donald Zou fecd8dab38 Update README.md 2025-04-05 20:45:37 +08:00
Donald Zou 13a833e3ed Update README.md 2025-04-04 16:53:17 +08:00
Donald Zou 8d4784052a Build v4.2 2025-04-03 23:03:00 +08:00
Donald Zou d9e9b41861 Build 2025-03-28 00:13:54 +08:00
Donald Zou f0c3ef0aa1 Added Chatbot to the App! 2025-03-28 00:13:38 +08:00
Donald Zou 3888831679 Merge pull request #663 from donaldzou/DaanSelen-patch-3
Update docker-related.yaml
2025-03-26 17:11:02 +08:00
dselen 1a32fad324 Update docker-related.yaml
Added nigthly trigger.
2025-03-26 09:42:11 +01:00
Donald Zou d842ae9540 Update docker-related.yaml 2025-03-25 15:36:53 +08:00
Donald Zou d0177b7504 Update docker-related.yaml 2025-03-25 15:17:41 +08:00
Donald Zou e3842b25f3 Update docker-related.yaml 2025-03-25 15:11:06 +08:00
Donald Zou a29b59c9cd Update docker-related.yaml 2025-03-24 17:36:05 +08:00
Donald Zou f94eb97aa4 Update docker-related.yaml 2025-03-24 12:52:28 +08:00
Donald Zou 86017b79eb Update docker-related.yaml 2025-03-24 12:50:26 +08:00
Donald Zou bc22fa5fad Update docker-related.yaml 2025-03-24 12:42:03 +08:00
Donald Zou d6b70028ff Merge pull request #662 from donaldzou/donaldzou-patch-1
Update docker-related.yaml
2025-03-24 05:11:36 +08:00
Donald Zou 0f7f9acd58 Update docker-related.yaml 2025-03-24 05:11:22 +08:00
Donald Zou 20633a6d1a Update docker-related.yaml 2025-03-24 05:00:45 +08:00
Donald Zou a23856270d Merge pull request #661 from donaldzou/DaanSelen-patch-2
Update docker-related.yaml
2025-03-24 04:27:53 +08:00
dselen 55543e370e Update docker-related.yaml
Workflow fix fix
2025-03-23 21:20:40 +01:00
Donald Zou 8137a46c68 Merge pull request #660 from DaanSelen/workflow-fix
Workflow fix.
2025-03-24 04:16:34 +08:00
daanselen aeb9597c71 Workflow fix. 2025-03-23 20:41:48 +01:00
Donald Zou 5067485e94 Commit 2025-03-16 00:42:40 +08:00
Donald Zou dfd456c7dc Update qodana_code_quality.yml 2025-03-12 01:01:42 +08:00
Donald Zou 0ccb07e683 Push 2025-03-12 00:59:32 +08:00
Donald Zou ca67a6897f Update 2025-03-12 00:44:36 +08:00
Donald Zou 0390227641 Update qodana_code_quality.yml 2025-03-12 00:36:07 +08:00
Donald Zou 395b0982db Merge pull request #650 from donaldzou/qodana-automation-897468090
Add qodana CI checks
2025-03-11 18:00:52 +08:00
Qodana Application f096ab4da7 Add github workflow file 2025-03-11 10:00:39 +00:00
Qodana Application d5ec9f7640 Add qodana.yaml file 2025-03-11 10:00:39 +00:00
Donald Zou 5732867407 Fixed #493 2025-03-11 17:52:53 +08:00
Егор Бардацкиий 31842f4c12 added Belarusian language 2025-03-08 03:45:26 +03:00
Donald Zou d5168d2da6 Update dashboard.py 2025-03-07 00:52:51 +08:00
Donald Zou cac5ec836b Update dashboard.py
- Fixing #601
2025-03-07 00:45:01 +08:00
Donald Zou ee9569e7d4 Update dashboard.py
- Trying to fix #601
2025-03-07 00:37:01 +08:00
dselen 95df7de026 Merge pull request #639 from karorogunso/main
Add Thai language
2025-02-27 11:51:53 +01:00
Karorogunso d3a5bd374d Merge pull request #1 from karorogunso/thai
Add Thai to main brach
2025-02-27 16:44:42 +07:00
Karorogunso 43ac3dddf1 Merge branch 'donaldzou:main' into thai 2025-02-27 16:25:57 +07:00
Karorogunso 1174328de3 Update active_languages.json 2025-02-27 16:24:28 +07:00
dselen dda54fb907 Merge pull request #625 from DaanSelen/arch-support
Arch Linux Support
2025-02-20 13:14:35 +01:00
daanselen 92ea808a5d Arch Linux Support 2025-02-19 18:49:00 +01:00
dselen 2bc3a75c94 Merge pull request #621 from wdk-kr/korean
Add Korean Language
2025-02-18 13:04:56 +01:00
완두콩 07ef97ce7c Update active_languages.json 2025-02-18 20:13:52 +09:00
완두콩 5fe3539331 Update ko.json 2025-02-18 15:52:50 +09:00
완두콩 4bc3bd5f13 Update ko.json 2025-02-18 15:51:24 +09:00
완두콩 4abce854d7 Update active_languages.json 2025-02-18 15:36:01 +09:00
완두콩 3b5c73992e Fix incorrect translations 2025-02-18 15:25:10 +09:00
완두콩 c5abea2944 Add Korean Language 2025-02-18 15:11:08 +09:00
Donald Zou 8e5cf14ebc Merge pull request #619 from akhepcat/v4.2-dev
Update wgd.sh - install pypi mirror can auto select by rtt after delay
2025-02-18 02:46:19 +08:00
Leif 7c8410ab86 Update wgd.sh
update msleep for longer timeout, and move that var to the top to make it more obvious
2025-02-17 09:41:11 -09:00
Donald Zou 369b4b92cc Update dashboard.py
- Fixed #
2025-02-17 15:25:33 +08:00
Donald Zou c50bb70383 Build 2025-02-17 14:25:49 +08:00
Donald Zou d84b2060f0 Added endpoint back when on list 2025-02-17 14:25:37 +08:00
Donald Zou afcf6024e6 Update 2025-02-17 14:01:56 +08:00
Donald Zou 3542bd6668 Adjusted UI to fit list display 2025-02-17 13:47:05 +08:00
Leif Sawyer 69b9116dd5 Add auto-select based on ping response 2025-02-16 14:53:03 -09:00
Leif a2db4f06b1 Update wgd.sh install pypi mirror auto select
add timeout value so that the install/update can run fully scripted without normal user intervention if desired
2025-02-16 11:43:47 -09:00
Donald Zou b60b0fb511 Resolved #596 2025-02-17 00:20:36 +08:00
Donald Zou 0c1e9a6bb5 Fixed #499 2025-02-16 23:08:24 +08:00
Donald Zou 2692f92cb9 Fixed #609 2025-02-16 23:07:16 +08:00
Donald Zou a43c8b4b00 Update dashboard.py 2025-02-16 17:43:22 +08:00
Donald Zou 6f15389411 Updated how available IP is generated 2025-02-16 17:42:32 +08:00
Donald Zou f055241802 Build 2025-02-15 16:50:09 +08:00
Donald Zou ac77c3a390 Fixed hardcoded issue 2025-02-15 16:49:49 +08:00
Donald Zou 5cd99f2edc Update dashboard.py
Fixed #490
2025-02-14 23:59:21 +08:00
Donald Zou 7c70fbec30 Build 2025-02-14 23:24:16 +08:00
Donald Zou ac0dc3196f Merge pull request #612 from akhepcat/v4.2-dev
Fix version checking
2025-02-14 16:07:18 +08:00
Leif 7f4da826b1 Fix version checking
don't just check for string differences, but compare the version numbering using packaging.version
2025-02-13 23:04:27 -09:00
Donald Zou cc2af4371f Build 2025-02-12 20:07:37 +08:00
Donald Zou 2a79a03d38 Build 2025-02-10 16:17:15 +08:00
Donald Zou 47aac7fe33 Added automatically assign keys and allowed ip when none provided
Resolve #515
2025-02-10 16:17:00 +08:00
Donald Zou d4055884b1 Fixed #580 2025-02-08 16:40:20 +08:00
Donald Zou 61658e847a Merge branch 'v4.2-dev' of https://github.com/donaldzou/WGDashboard into v4.2-dev 2025-02-08 15:45:40 +08:00
Donald Zou bd714223ce Update dashboard.py 2025-02-08 15:45:09 +08:00
dselen 060154cb89 Merge pull request #595 from sobhydo/main
Adding Arabic Translation
2025-02-06 14:13:23 +01:00
dselen 99a1bfca9d Update active_languages.json
removed leading newline
2025-02-06 14:10:10 +01:00
dselen 4379f30628 Update active_languages.json
removed trailing enter.
2025-02-06 14:09:47 +01:00
Ahmed Sobhy b501244577 Alphabetical order for active languages 2025-02-06 16:53:43 +04:00
daanselen 6f7b9815ca Hotfix for stop entrapment and addition of workdir in Dockerfile 2025-02-06 11:41:41 +01:00
dselen 227bd088f7 Merge pull request #603 from DaanSelen/4.2
Docker enhancements.
2025-02-06 10:56:32 +01:00
daanselen b1d6ecb07c Tidied up compose 2025-02-06 10:55:07 +01:00
daanselen 41772f28bd Added a SIGTERM trap to the entrypoint script for faster stopping. 2025-02-06 10:52:14 +01:00
daanselen 393dac1c99 Working https://github.com/donaldzou/WGDashboard/issues/586 2025-02-05 10:32:36 +01:00
daanselen db9d0be6c7 Updated docker configuration. 2025-02-02 23:24:21 +01:00
Ahmed Sobhy f0774ec273 Adding Arabic Translation 2025-01-27 23:41:06 +04:00
karorogunso d4a4d28b58 Add Thai Language 2025-01-27 21:39:06 +07:00
Donald Zou 3ec97021bd Build 2025-01-26 23:51:00 +08:00
Donald Zou 56cf972373 Build 2025-01-26 23:09:09 +08:00
Donald Zou 2f3ae4c1af Pushi 2025-01-26 23:07:32 +08:00
Donald Zou bc3dd04e12 Push 2025-01-26 23:07:19 +08:00
Donald Zou 4e8fc1b431 Commit 2025-01-26 23:03:09 +08:00
Donald Zou cd39aa2968 Update 2025-01-25 22:15:19 +08:00
Donald Zou 87ea3fc982 Update PeerJobLogger.py 2025-01-25 22:11:50 +08:00
Donald Zou f74a511778 Update PeerJobLogger.py 2025-01-25 22:10:29 +08:00
Donald Zou 202461fe48 Update PeerJobLogger.py 2025-01-25 21:56:29 +08:00
Donald Zou 2af6687351 Build 2025-01-24 19:19:51 +08:00
Donald Zou e603af5f24 Refactored system status into a class. Added charts 2025-01-24 19:19:17 +08:00
Donald Zou 84069ee882 Refactor some new code 2025-01-24 00:01:29 +08:00
Donald Zou edbb5cef92 Refactor some code 2025-01-22 15:46:04 +08:00
Donald Zou a62c54b4ed Merge pull request #576 from petrsimunek/patch-1
Update cs.json
2025-01-19 21:07:40 +08:00
Donald Zou 41df7c04c3 Merge pull request #585 from donaldzou/fix-#581
Ready for update
2025-01-19 21:03:38 +08:00
Donald Zou 9b783a8322 Ready for update 2025-01-19 21:03:08 +08:00
Donald Zou 57db4df618 Merge pull request #584 from donaldzou/fix-#581
Fixed Job Logger Bug, Restrict Peers with Configuration include special characters
2025-01-19 20:57:04 +08:00
Donald Zou 9d1081bd56 Update dashboard.py
- Fixed #581 issue.
2025-01-19 20:54:19 +08:00
Donald Zou cc3773817b Refactor 2025-01-19 20:52:04 +08:00
Donald Zou 8956355e57 Update dashboard.py
Removed the need to check for each custom classes, will check if the class have `toJson`, if `True` then use it.
2025-01-19 14:04:59 +08:00
Donald Zou 645db97c14 Refactored some custom classess 2025-01-19 14:04:21 +08:00
Donald Zou 07a04dc507 Update dashboard.py 2025-01-19 13:20:04 +08:00
Donald Zou a7317af413 Update code for #446 2025-01-16 18:36:06 +08:00
Donald Zou ba6d6b8851 Display configuration as grid, system status process bug 2025-01-16 15:40:33 +08:00
Donald Zou 3726810108 Build with email functions 2025-01-16 00:46:38 +08:00
Donald Zou 4f92a7edf3 Finalized the email function 2025-01-16 00:44:22 +08:00
Donald Zou 5d84b61f18 Build with Email enabled 2025-01-13 16:47:15 +08:00
Donald Zou cd1329ec67 Update README.md 2025-01-13 01:41:25 +08:00
petrsimunek 48a58b2b69 Update cs.json
Added translation for dashboard IP and port settings
2025-01-11 16:23:29 +01:00
Donald Zou 9b64aba8bf Merge pull request #575 from mahdiMGF2/main
Fixed some syntax error in Peer Jobs
2025-01-09 17:21:22 +08:00
Donald Zou cae8264d98 Update dashboard.py 2025-01-09 17:13:32 +08:00
Mahdi 95d8985336 Bug fixed
Bug Fixed deletePeerScheduleJob endpoint
2025-01-09 11:38:45 +03:30
Donald Zou b26ae90807 Merge pull request #574 from donaldzou/v4.1.3-dev
v4.1.3 Ready
2025-01-09 14:02:19 +08:00
Donald Zou 66d171c432 v4.1.3 Ready 2025-01-09 13:42:21 +08:00
Donald Zou 40463d9831 Email functionality is done 2025-01-08 18:09:05 +08:00
Donald Zou eb7dee013d Refactored add peers 2025-01-05 14:32:11 +08:00
dselen 1a878599b1 Merge pull request #549 from alexperreault/main
French translation
2025-01-03 08:39:41 +01:00
Donald Zou b9e25abdd9 Refactored peer list 2025-01-03 13:45:05 +08:00
alexp c612022717 alphabetical order 2025-01-02 20:23:52 -05:00
Donald Zou 31e7f02b8d Still trying 2025-01-02 11:38:21 +08:00
Donald Zou 75747a2979 Merge pull request #568 from donaldzou/fix-backup-folder-not-created
Create WGDashboard_Backup when configuration initialized
2025-01-02 11:36:11 +08:00
Donald Zou a85a8668a7 Update dashboard.py 2025-01-01 10:36:44 +08:00
Donald Zou cca5fd859c Update dashboard.py
- Create WGDashboard_Backup
2024-12-31 11:02:52 +08:00
Donald Zou 2ed49abb1b Update dashboard.py
Minor issue
2024-12-31 10:44:27 +08:00
Donald Zou 409e6d49b2 Update dashboard.py
- Fixed `WGDashboard_Backup` not being created and caused crash
2024-12-31 10:33:28 +08:00
Donald Zou 93cfc482b8 Commit 2024-12-31 10:31:24 +08:00
Donald Zou 85be6d53d0 Merge pull request #566 from donaldzou/fix-edit-configuration
Edited configuration not updating to dashboard
2024-12-30 20:33:10 +08:00
Donald Zou bf6f58eb5e Remove with sqldb in SQL Select 2024-12-30 20:31:24 +08:00
Donald Zou cd9d17ab18 Refactoring configuration list 2024-12-30 20:30:09 +08:00
Donald Zou e0bc6a10d0 Edited configuration not updating to dashboard 2024-12-29 16:37:19 +08:00
Donald Zou ccfc1ad166 Update dashboard.py 2024-12-29 15:57:57 +08:00
Donald Zou 812060240f Update dashboard.py 2024-12-29 13:12:40 +08:00
Donald Zou 715a266ca4 Merge pull request #563 from donaldzou/fix-#562
Fix #562, and mysterious Jobs disappear issue
2024-12-28 23:53:35 +08:00
Donald Zou fa4b3ece56 Log the error instead of remove the job 2024-12-28 21:01:21 +08:00
Donald Zou aac2a002bb Delete .github/workflows/main.yml 2024-12-28 01:34:33 +08:00
Donald Zou 8574acaf6e Create main.yml 2024-12-28 01:27:25 +08:00
Donald Zou ddf4639354 Update README.md 2024-12-28 01:26:47 +08:00
Donald Zou 9bd394f351 Update dashboard.py 2024-12-27 03:09:27 +08:00
Donald Zou 6899d48aae Update 2024-12-26 00:06:37 +08:00
Donald Zou 514e1ca8d0 Build 2024-12-18 18:15:02 +08:00
Donald Zou eba5be010a Update 2024-12-18 17:45:22 +08:00
Donald Zou f578d5c1c9 Enhanced peer list rendering
- Used IntersectionObserver to better render peer list, in case of too many peers will slow down browser
2024-12-18 15:06:41 +08:00
Donald Zou e58b1d670b Update README.md 2024-12-15 21:37:45 +08:00
Donald Zou c2642259b4 Update gunicorn.conf.py 2024-12-12 18:31:00 +08:00
Donald Zou c47b0c9741 Update gunicorn.conf.py 2024-12-12 18:29:11 +08:00
Donald Zou f425156cad Sync with HTTPS build 2024-12-12 18:23:42 +08:00
Donald Zou 7d7e31120e HTTPS workflow 2024-12-12 18:20:25 +08:00
dselen ccd247d154 Merge branch 'dev' into v4.2-dev 2024-12-12 11:07:17 +01:00
daanselen 53df6849f7 Working prototype with AWG 2024-12-12 11:03:39 +01:00
Donald Zou c2080bd1b3 Update gunicorn.conf.py 2024-12-12 16:34:45 +08:00
Donald Zou 9e93f8c2a5 HTTPS workflow 2024-12-12 16:25:54 +08:00
Donald Zou 907a142c8d Build 2024-12-09 16:13:22 +08:00
Donald Zou d7bc8cd8e4 Update configurationList.vue 2024-12-09 16:13:06 +08:00
daanselen bb3e00a695 Thanks to @NOXCIS, added this development Ubuntu Dockerfile. 2024-12-08 14:22:02 +01:00
alexp af5e7974c3 Added the french language 2024-12-07 21:29:59 -05:00
Donald Zou 6a88959ec4 Update dashboard.py 2024-12-07 21:59:03 +08:00
Donald Zou 7b59149f90 Build 2024-12-07 21:41:20 +08:00
Donald Zou 3e01079caf Added sorting and search to configuration list 2024-12-07 21:41:05 +08:00
Donald Zou d92e62e40b Adjusted system status widget 2024-12-07 21:40:43 +08:00
Donald Zou b4952dea7b Fixed message center
- Fixed message blocking element behind
- Adjusted message UI
- Allow to dismiss, will not dismiss when mouse hover on it
2024-12-07 17:48:48 +08:00
Donald Zou 00acb04329 Update dashboard.py
- Disabled `EmailSender` for now
2024-12-07 17:05:30 +08:00
Donald Zou 939dd0591e Build 2024-12-07 16:54:00 +08:00
Donald Zou febdb2a9e0 Update deleteConfiguration.vue 2024-12-06 22:55:02 +08:00
Donald Zou bcfd9fc1c9 Update wgd.sh 2024-12-06 22:11:34 +08:00
Donald Zou e4964da5d4 Update wgd.sh 2024-12-06 22:05:18 +08:00
Donald Zou a042298a4a Update wgd.sh 2024-12-06 22:03:57 +08:00
Donald Zou 908be168a9 Update wgd.sh 2024-12-06 22:01:57 +08:00
Donald Zou d780bb3937 Added PyPI choose in wgd.sh install 2024-12-06 22:00:35 +08:00
Donald Zou 461e7e8913 build 2024-12-06 20:32:59 +08:00
Donald Zou 819e8b73c3 Added configuration editor 2024-12-06 20:27:04 +08:00
Donald Zou 627b7087a1 Build 2024-12-06 01:27:15 +08:00
Donald Zou f23cf555e1 Added file upload to create configuration 2024-12-05 22:22:55 +08:00
Donald Zou 000978e4fb Merge pull request #538 from donaldzou/v4.2-dev-amneziawg-support
Add AmneziaWG Support
2024-12-05 01:52:35 +08:00
Donald Zou 74782483bd Build 2024-12-05 01:51:02 +08:00
Donald Zou c5f9387b92 All AWG support work is done ;) 2024-12-05 01:50:31 +08:00
Donald Zou 57583b6747 Backup and restore for AWG is done 2024-12-04 17:50:16 +08:00
Donald Zou 434c236210 Finished adjusting Peers UI for AWG 2024-12-03 02:34:45 +08:00
Donald Zou 807bb97b6a Update some UI to handle Wireguard and AWG 2024-12-02 17:36:37 +08:00
Donald Zou da53bd44d1 Update dashboard.py 2024-12-02 16:38:09 +08:00
Donald Zou 3b01943649 Update dashboard.py 2024-12-02 16:34:26 +08:00
Donald Zou 3340f9c6ee Update dashboard.py
- Updated WireguardConfiguration class to handle awg configuration files
- Added AmneziaWireguardConfiguration class as a subclass of WireguardConfiguration
2024-12-02 15:09:54 +08:00
Donald Zou b21cfe8504 Updated search bar 2024-12-02 14:13:19 +08:00
Donald Zou 97ab6ec299 Build 2024-12-01 01:07:47 +08:00
Donald Zou 7fda58e5c8 New search bar design 2024-12-01 01:07:27 +08:00
Donald Zou db6e820d1d Build 2024-11-30 00:28:12 +08:00
Donald Zou 8c2e1875ca Update peerSearch.vue 2024-11-30 00:27:59 +08:00
Donald Zou bd95fe9af1 Build 2024-11-29 23:08:14 +08:00
Donald Zou a517f89234 Update 2024-11-29 23:07:58 +08:00
Donald Zou f994e7bfa8 Update dashboard.py
- Accepted proposed enhancement on #533
2024-11-29 14:42:13 +08:00
Donald Zou 28716924c9 Update dashboard.py 2024-11-28 23:36:42 +08:00
Donald Zou b597f90f5b Update 2024-11-28 23:35:22 +08:00
Donald Zou 5912420467 Added System Status 2024-11-28 23:28:10 +08:00
Donald Zou 90f35fd680 update 2024-11-27 22:53:27 +08:00
Donald Zou 3e2d6e71b9 Update 2024-11-27 21:53:00 +08:00
Donald Zou cbffdd829a Update 2024-11-27 18:26:13 +08:00
Donald Zou d77e092948 Build 2024-11-27 14:27:41 +08:00
Donald Zou 1f5e10e784 Adjusted login UI 2024-11-27 14:25:38 +08:00
Donald Zou 68e3813c6c Update 2024-11-27 13:57:21 +08:00
Donald Zou c9d78e3f67 Added tooltips to dropdown icons
#524
2024-11-26 22:43:33 +08:00
Donald Zou b4f3fb3b30 Fixed UI 2024-11-26 21:32:08 +08:00
Donald Zou bf7fb898f9 Update dashboard.py
- Fixed #497
2024-11-26 21:27:32 +08:00
Donald Zou 6c5e0543b4 update 2024-11-26 00:21:59 +08:00
Donald Zou 578a1db62f Refactored some of the codes 2024-11-25 22:11:51 +08:00
Donald Zou 4524a55b23 Merge pull request #527 from donaldzou/fix-#516
Security Patch
2024-11-25 20:41:51 +08:00
Donald Zou f942eaf1b6 Ready for release 2024-11-25 18:23:48 +08:00
Donald Zou 6a4d16fae9 Merge pull request #529 from donaldzou/fix-#522
Fixing `auth_req` is not working
2024-11-25 02:49:40 +08:00
Donald Zou 53b234252f Final build 2024-11-25 02:48:55 +08:00
Donald Zou 9287e81ef1 Build 2024-11-25 01:53:29 +08:00
Donald Zou 5462326f79 Updated dashboard.py and DashboardConfigurationStore.js
- Added `session.clear()` to clean the session specific to each login session
- Clear all cookie with the `signout` request and also clear again (just in case) in the frontend code.
2024-11-25 01:46:27 +08:00
Donald Zou b8b3992159 commit 2024-11-24 12:10:00 +08:00
Donald Zou 8214000713 Commit 2024-11-24 00:22:33 +08:00
Donald Zou 94337a33d4 Merge pull request #521 from donaldzou/bsd-support
Replace `ifcfg` with socket to get default interface address
2024-11-23 18:25:02 +08:00
Donald Zou 8ddee03338 Merge pull request #520 from donaldzou/main
Merging latest v4.1.1 changes into v4.2.0 branch
2024-11-23 18:10:00 +08:00
Donald Zou 8e2934533b Dropping support plan to OpenBSD 2024-11-23 18:08:14 +08:00
Donald Zou 71ee784003 Update dashboard.py 2024-11-23 17:51:48 +08:00
Donald Zou 597528e9b7 Update dashboard.py 2024-11-23 17:30:34 +08:00
Donald Zou 45fbbf9218 Update dashboard.py 2024-11-23 17:30:22 +08:00
Donald Zou c7a4a01fee Merge pull request #519 from donaldzou/main
Merge main into bsd support
2024-11-23 16:57:00 +08:00
Donald Zou fa04ad1395 Merge pull request #518 from donaldzou/v4.1.1-dev
Ready for new update
2024-11-23 15:57:28 +08:00
Donald Zou abdd85bdd5 Ready for new update 2024-11-23 15:37:00 +08:00
Donald Zou dba55d57e8 Merge pull request #488 from donaldzou/language-template
Added template and script to check local files
2024-11-23 15:18:14 +08:00
Donald Zou 9819c96717 Update verify_locale_files.py 2024-11-23 15:09:35 +08:00
Donald Zou 1b0885bffe Update verify_locale_files.py 2024-11-23 14:55:07 +08:00
Donald Zou c0a8540ab8 Update tr-tr.json 2024-11-23 14:38:15 +08:00
Donald Zou f3b95f03a1 Update active_languages.json 2024-11-23 13:46:27 +08:00
Donald Zou 5f06f3da52 Update sv-se.json 2024-11-23 13:46:20 +08:00
Donald Zou 10a7fb809b Update pl.json 2024-11-23 13:37:27 +08:00
Donald Zou d3ea1f3da2 Update nl-nl.json
Fixed translation
2024-11-23 13:36:58 +08:00
Donald Zou 74d0471a6f Update verify_locale_files.py 2024-11-23 13:23:50 +08:00
Donald Zou a1c1805409 Updated it-it.json 2024-11-23 13:23:47 +08:00
Donald Zou b843145bed Update de-de.json
Fixed de-de translations
2024-11-23 13:15:03 +08:00
Donald Zou 119920b665 Update ru.json
Fixed translations
2024-11-22 19:36:11 +08:00
Donald Zou 6190e2d290 Fixed cs.json 2024-11-22 01:46:52 +08:00
Donald Zou 79de99d146 Finalized verify script 2024-11-22 01:41:11 +08:00
Donald Zou 56a9b3df0a Merge pull request #514 from MickLesk/patch-1
Update de-de.json
2024-11-22 01:32:56 +08:00
Donald Zou 4df6413dba Merge pull request #513 from oskarax/main
Added Swedish translations and updated active languages file.
2024-11-22 01:30:28 +08:00
Donald Zou fcd0ada639 Merge branch 'language-template' into main 2024-11-22 01:30:17 +08:00
Donald Zou 6b6bd155aa Merge pull request #512 from donaldzou/main
Merging main into language template branch
2024-11-22 01:28:23 +08:00
CanbiZ 9c91b1bca5 Update de-de.json 2024-11-18 23:05:05 +01:00
Oskar Ax 1a5c0e5b24 Added Swedish translations and updated active languages file. 2024-11-18 21:08:06 +01:00
Donald Zou 981b30e4af Update check script 2024-11-17 17:20:41 +08:00
Donald Zou 30c84d8cbf Merge pull request #502 from AdimoUK/main
Merge spanish translation
2024-11-16 19:17:46 +08:00
Donald Zou 4c538c54a8 Merge pull request #501 from AdimoUK/polish-language
Merge Polish translation
2024-11-16 19:12:01 +08:00
dselen ad7a8f1d08 Merge pull request #496 from DaanSelen/v4.1-add-qemu
Previous PR was merged too fast 🥇
2024-11-15 12:11:18 +01:00
daanselen f02a07dab4 Name change 2024-11-15 12:08:51 +01:00
dselen c61b0fc1e1 Merge pull request #494 from donaldzou/fix-preshared-key
Fixed #377
2024-11-15 12:06:14 +01:00
daanselen fed7dfcb73 Added arm/v6
Specified the QEMU setup. From WireGate
2024-11-15 12:05:08 +01:00
Donald Zou 0d69c811ab Merge pull request #495 from DaanSelen/v4.1-add-qemu
Added QEMU virtualization for cross-compilation
2024-11-15 18:59:48 +08:00
daanselen 83274add22 Added QEMU virtualization for cross-compilation @NOXCIS 2024-11-15 11:35:45 +01:00
Donald Zou 7497d1b6d4 Fixed #377
Fixed Preshared Key is not added when adding peers
2024-11-15 13:45:14 +08:00
Donald Zou 239bc144e3 Fixed both Chinese translation 2024-11-15 12:00:31 +08:00
Donald Zou 1ece64abe1 Merge pull request #492 from DaanSelen/language-template
Proposed changes
2024-11-15 11:52:13 +08:00
daanselen 915783699b Proposed changes 2024-11-14 21:36:27 +01:00
Donald Zou 43f6bd41c9 Update verify_locale_files.py 2024-11-15 02:15:40 +08:00
Adam 98c017dd56 Fix to a translation 2024-11-14 00:09:59 +00:00
Donald Zou 811ed3251b Merge pull request #464 from jpizquierdo/v4.1-dev 2024-11-14 02:06:25 +08:00
Donald Zou 665b0f1484 Added template and script to check local files 2024-11-14 02:02:26 +08:00
Donald Zou 9e26d845da Update active_languages.json
Oops.. missed a comma
2024-11-14 00:59:17 +08:00
Donald Zou 6ddf20f5ce Update active_languages.json
Sorting the list based on `lang_id`
2024-11-14 00:53:26 +08:00
dselen 27ed0710cc Merge pull request #487 from donaldzou/donaldzou-patch-1
Update README.md Discord link
2024-11-13 15:08:24 +01:00
Donald Zou cb87c9f345 Update README.md Discord link 2024-11-13 21:12:45 +08:00
Donald Zou e1e147c8f0 Adding support to OpenBSD 2024-11-12 18:32:53 +08:00
Donald Zou b37d889de9 Update wgd.sh 2024-11-12 18:21:27 +08:00
Donald Zou b61c9bfc5e Update wgd.sh 2024-11-12 18:01:59 +08:00
Donald Zou e963788a81 Update wgd.sh 2024-11-12 17:58:51 +08:00
Donald Zou 3ef4798e09 Update wgd.sh 2024-11-12 00:12:10 +08:00
Donald Zou 21730102ae Merge pull request #474 from donaldzou/DaanSelen-lang-1 2024-11-11 19:12:12 +08:00
Donald Zou b1ae05152e Merge pull request #471 from kaanklky/languages-tr-tr 2024-11-11 19:05:53 +08:00
Adam cc87f01e2f Addition of Polish Language 2024-11-10 22:07:20 +00:00
dselen 85dfa1b078 Update nl-nl.json 2024-11-10 13:53:47 +01:00
Donald Zou fdff54e11e Merge pull request #469 from DaanSelen/main 2024-11-10 09:02:06 +08:00
Kaan Kölköy 0894f38660 Update active languages list 2024-11-09 22:40:04 +01:00
Kaan Kölköy f643d8ef25 Add Turkish localization 2024-11-09 22:39:51 +01:00
dselen e437284980 Squash Docker progress: (#1)
* Version 4.1 Docker image tested.

    Fixed kinks in Docker image.
    Updated Dutch language
    Removed remaining "enable" parameter from Docker-related files
    Made the symlink system more reliable
    Improved updatability.

    Added multiplatform docker build (arm,arm64 and amd64)
    More verbose logging from the Docker image.
2024-11-09 00:18:01 +01:00
Donald Zou f6e0d330ac update 2024-11-09 02:17:21 +08:00
Donald Zou 890cbf0f36 Merge pull request #468 from donaldzou/issue-discord-link
Fix Discord Link Under Help
2024-11-09 00:49:46 +08:00
Donald Zou 36cf2ea2e8 Merge branch 'main' into issue-discord-link 2024-11-09 00:49:26 +08:00
Donald Zou a8f7bd0280 Build 2024-11-09 00:48:16 +08:00
Donald Zou aa6517046d Merge pull request #467 from donaldzou/issue-#462
Fix #462
2024-11-09 00:44:45 +08:00
Donald Zou 42e4d8c7ba build 2024-11-09 00:40:42 +08:00
Joel Pérez Izquierdo 3d1da38cbc add es-es locale file 2024-11-08 17:29:58 +01:00
Joel Pérez Izquierdo 5ae8490999 add spanish language 2024-11-08 17:28:57 +01:00
Donald Zou 715675b2f1 Merge pull request #458 from donaldzou/donaldzou-patch-1
Update README.md
2024-11-08 16:17:28 +08:00
Donald Zou 0d7198a26c Update README.md 2024-11-08 16:17:15 +08:00
Donald Zou d8b7ce6d9b Update README.md 2024-11-08 16:16:44 +08:00
Donald Zou d032ca31e3 Update README.md 2024-11-08 16:15:56 +08:00
Donald Zou 67b49c0585 Merge pull request #457 from donaldzou/v4.1-dev
Final update
2024-11-08 16:14:14 +08:00
Donald Zou c23242f18e Final update 2024-11-08 16:13:47 +08:00
Donald Zou c23f7a3ee2 Merge pull request #440 from donaldzou/v4.1-dev
V4.1 dev
2024-11-08 16:13:22 +08:00
Donald Zou 7e3e957649 Update ru.json 2024-11-08 00:50:57 +08:00
Donald Zou b8f304dfd3 Prepare for release 2024-11-08 00:31:19 +08:00
Donald Zou e895ac9245 Merge branch 'main' into v4.1-dev 2024-11-08 00:29:01 +08:00
Donald Zou 77579a71e8 Match docker 2024-11-07 23:54:48 +08:00
Donald Zou cc7e13cdbf Merge pull request #455 from DaanSelen/v4.1-dev
Added Dutch language.
2024-11-07 23:53:48 +08:00
Donald Zou 5df3886e42 Merge branch 'v4.1-dev' into v4.1-dev 2024-11-07 23:50:54 +08:00
Donald Zou cc179a05d0 Update 2024-11-07 23:47:08 +08:00
Donald Zou ec5f4f2778 Fixed some CSS issue on mobile 2024-11-07 23:43:14 +08:00
Donald Zou 084c95f0e5 Just fixed #455 2024-11-07 18:33:39 +08:00
daanselen 3b78cfe0fd Renamed files and changed Dutch file. 2024-11-07 11:26:37 +01:00
daanselen 160ce3338d Changed some file-names 2024-11-07 11:25:05 +01:00
Donald Zou d425cfe1aa Refactor 2024-11-07 14:56:02 +08:00
Donald Zou 6ff286f9b4 Refactor 2024-11-07 14:54:42 +08:00
Donald Zou b930461434 Refactored some files 2024-11-07 14:53:31 +08:00
Donald Zou ee6bb24506 build test 2024-11-07 10:37:11 +08:00
Donald Zou b69124c89f test 2024-11-07 00:15:28 +08:00
Donald Zou f089e4a1ce update 2024-11-07 00:09:40 +08:00
Donald Zou 7dedb5c076 Test adding hash to vite build 2024-11-07 00:03:40 +08:00
Donald Zou 3276c9a84c Update 2024-11-06 23:25:20 +08:00
Donald Zou 04ef2ea3b6 Merge branch 'v4.1-dev' of https://github.com/donaldzou/WGDashboard into v4.1-dev 2024-11-06 23:22:01 +08:00
Donald Zou 04a2f27a75 Update 2024-11-06 23:21:53 +08:00
Donald Zou d962f59884 Merge pull request #452 from jursed/v4.1-dev
Czech translation
2024-11-06 21:40:18 +08:00
Donald Zou fd3bd4567a Update active_languages.json
Removed the `,` at the end :)
2024-11-06 21:12:55 +08:00
Donald Zou 29e7a5ecdb Fixed bulk add 2024-11-06 20:58:53 +08:00
Donald Zou 4956b0d89d Rename configuration done 2024-11-06 18:36:55 +08:00
Donald Zou 3bc54a4e16 Update wgd.sh 2024-11-05 19:46:09 +08:00
Donald Zou 29ecd602ec Added help modal 2024-11-05 19:43:47 +08:00
zire 1425dec564 Czech translation
First attempt at Czech translation. Note that some words don't have
a good and short translation, e.g. "peers", "pre-shared key" or
"persistent keepalives". In these cases, some approximate/familiar
"Czech-English" amalgamation is used.
2024-11-03 22:05:13 +01:00
Donald Zou 2bb1c0c999 Optimized build 2024-11-03 21:06:51 +08:00
Donald Zou 97f3daae70 Optimized vite build 2024-11-03 20:45:59 +08:00
Donald Zou c53a7ef6fe Update 2024-11-03 19:09:15 +08:00
Donald Zou b97fc16ad9 Adjusted router to dynamic import 2024-11-03 18:35:21 +08:00
Donald Zou eaac12ddc8 Update both Chinese languague 2024-11-03 17:36:03 +08:00
Donald Zou 183be5da0e Update README.md
testing webhooks
2024-11-03 15:58:34 +08:00
Donald Zou ace0953c87 Update README.md 2024-11-03 15:26:33 +08:00
Donald Zou 1fd7e7833d Update README.md 2024-11-03 15:20:41 +08:00
Donald Zou aa5801d73b Update README.md 2024-11-03 14:41:21 +08:00
Donald Zou d1ea8081e4 Finished zh-CN 2024-11-02 18:50:15 +08:00
Donald Zou 49467c906d zh-CN Update 2024-11-02 14:26:47 +06:00
Donald Zou 79bd575aca Merge pull request #448 from donaldzou/DaanSelen-patch-1
Hotfix.
2024-11-02 16:20:35 +08:00
Donald Zou e533a0e405 Merge pull request #445 from knd775/patch-1
feat: Support Rocky Linux
2024-11-01 23:24:47 +08:00
Donald Zou 94b597d29a Adjusted some UI 2024-11-01 22:30:25 +08:00
dselen 504fefff94 Update docker-build.yaml 2024-11-01 09:19:47 +01:00
dselen ff794a3638 Update docker-analyze.yaml
I switched them around 😭
2024-11-01 09:15:46 +01:00
Donald Zou efb9a34cb8 Merge pull request #447 from DaanSelen/workflow-change 2024-11-01 16:11:26 +08:00
daanselen a93291b38f Changed the workflow from every night to: on every commit in the main branch. 2024-10-31 20:16:45 +01:00
Donald Zou dfc9eab9d3 Fixed some issue on autostart 2024-10-31 23:28:30 +08:00
Donald Zou 3c74b0b1ef Update 2024-10-31 22:13:44 +08:00
Donald Zou 9b981fcea8 Autostart feature is done 2024-10-31 22:13:00 +08:00
Ben Ayles 9d3a189d77 fix: Support Rocky Linux 2024-10-29 23:02:59 -04:00
Donald Zou 01c0175e8f Commit 2024-10-29 14:57:29 +08:00
Donald Zou d7e5e2f381 Update wgd.sh 2024-10-26 18:09:42 +08:00
Donald Zou c27de8b9a5 Build 2024-10-26 13:54:08 +08:00
Donald Zou c3a55f8b69 Finished create configuration from backup 2024-10-25 23:34:07 +08:00
Donald Zou 78b65a799e Added notification to backup before delete 2024-10-25 23:33:42 +08:00
Donald Zou 6a30cee611 Adjusted some animation 2024-10-25 23:33:26 +08:00
Donald Zou bc19e3a6ff Adjusted title 2024-10-25 23:33:07 +08:00
Donald Zou 5a8f2fa2be Adjusted some animation 2024-10-25 23:32:30 +08:00
daanselen 81168c27c6 Fixed issue https://github.com/donaldzou/WGDashboard/issues/329.
Regarding being able to pass in the -y flag.
2024-10-24 23:10:36 +02:00
Donald Zou a606626053 UI for restore configuration is done 2024-10-25 00:19:27 +08:00
daanselen adeb57864b Fixed incorrect Docker_IMAGE variable from dselen/ -> donaldzou/ 2024-10-24 10:48:14 +02:00
daanselen 747f1a6fae SEC: Fixed CVE-2024-9143 presence. 2024-10-24 10:24:22 +02:00
daanselen 3ac9c23573 Removed the default value: wg0 in isolate and enable.
Removed clean_up() function because persistency is done differently.
Overal tried to make readability better in entrypoint.sh
Fixed bug where local config variable causes issues.
Applied ShellCheck recommendations.
2024-10-24 10:13:33 +02:00
daanselen 5ad9c0e77a Fixed issue where the wg0.conf template got obliterated.
Moved it to a safe spot.
2024-10-24 00:23:12 +02:00
daanselen ba5ba2f1d6 Removed copy step in entrypoint.sh
Tested updating, works as long as presistent files are compatible.
2024-10-24 00:09:27 +02:00
daanselen 4902b5f351 Initial testing to update from version 4.0.3 to 4.0.4 have succeeded! 2024-10-23 23:47:00 +02:00
daanselen 166fcda193 Minor changes to compose and Dockerfile. 2024-10-23 23:15:41 +02:00
daanselen 83560bc775 Changed around Docker image building and entrypoint.
- Succeeding my tests.
2024-10-23 22:40:40 +02:00
daanselen 4ffb00c9f5 Updated ensure install. 2024-10-23 16:57:51 +02:00
daanselen fbac41a774 Changed ensure install 2024-10-23 16:57:40 +02:00
daanselen c837ab8693 Complete Docker Container redo, making updates possible.
- Through symlinks.

Refactored the set env variables function.
2024-10-23 16:41:03 +02:00
Donald Zou 1cc321ddff Merge pull request #436 from donaldzou/v4.1-workflows
V4.1 workflows
2024-10-23 17:30:33 +08:00
dselen 7861cffb91 Merge pull request #430 from DaanSelen/main
Modified GitHub workflows
2024-10-22 08:52:52 +02:00
Donald Zou 82a472f368 Delete configuration, restore configuration 2024-10-22 12:28:51 +08:00
daanselen cfe59774e7 Changed Docker image names: dselen -> donaldzou 2024-10-21 12:09:53 +02:00
daanselen 1098475473 Changed failing criteria 2024-10-21 12:07:33 +02:00
Donald Zou 4546e795ef Merge pull request #433 from reloadlife/patch-1
Added a try/catch statement to prevent panel from crashing #432
2024-10-21 15:37:49 +08:00
Donald Zou bb0aba586b Update dashboard.py
Instead of catching one sql statement error, I moved the catch statement to `sqlSelect` to prevent all database error
2024-10-20 16:05:32 +08:00
Mohammad Mahdi "Mamad" Afshar 204b995e6c added a try/catch statement to prevent panel from crashing #432 2024-10-19 19:25:38 +03:30
daanselen 321b7b4cee Modified GitHub workflows 2024-10-17 12:52:34 +02:00
Donald Zou 413377fbb9 Backup and restore function is done
Completed with SQLDump and .conf backup
2024-10-17 00:04:26 +08:00
Donald Zou e2e821881c Peer restore works
Still need to SQL Dump the table aswell
2024-10-16 17:44:49 +08:00
Donald Zou 51712ed2a8 Re-adjust backup & restore location 2024-10-15 23:07:49 +08:00
Donald Zou 27de7ddbf8 Still working on backup & restore 2024-10-15 00:30:20 +08:00
Donald Zou bb700f3a3d Update selectPeers.vue 2024-10-14 17:27:34 +08:00
Donald Zou 563268558b Finished selecting peers in bulk to delete and download 2024-10-14 16:32:17 +08:00
Donald Zou 56744cec7b Commit 2024-10-06 23:09:55 +08:00
Donald Zou 87696a2e6c Fixed 2024-10-06 17:27:16 +08:00
Donald Zou 79f1c20f8a Added custom build.sh 2024-10-06 17:24:53 +08:00
Donald Zou 4e5638df36 Fixed issue #346 2024-10-06 17:13:50 +08:00
Donald Zou 71349f35e4 Fixed issue #352
Fixed issue when allowed_ips have more than 1 IP Address, allow access will crash
2024-10-06 16:59:11 +08:00
Donald Zou 2cb06bb4bb Added total peers in peers count 2024-10-05 16:10:36 +08:00
Donald Zou 5e1769b81f Updated Translation 2024-10-05 15:38:56 +08:00
Donald Zou e344f28265 Added peer's endpoint IP back 2024-10-05 15:03:27 +08:00
Donald Zou 2297d6b85b Merge pull request #417 from donaldzou/v4.0.4-almalinux-support
Added AlmaLinux Support
2024-10-05 10:24:46 +08:00
Donald Zou baaecdbd8c Update wgd.sh 2024-10-05 10:05:48 +08:00
Donald Zou 31d8af642d Merge pull request #363 from martin-g-it/patch-1
Update dashboard.py - sort WG configurations
2024-10-04 20:15:04 +08:00
Donald Zou 27c67ec202 Added loading bar between each routes 2024-10-04 17:48:24 +08:00
Donald Zou 4833a29e57 Adjusted some transition between routes 2024-10-04 17:27:25 +08:00
Donald Zou 4a2f3e0372 Configuration Settings done 2024-10-04 16:58:47 +08:00
Donald Zou f3eeff4ec8 Merge pull request #415 from donaldzou/DaanSelen-patch-1
Fix README.md
2024-10-04 16:22:16 +08:00
dselen 221e03ecfa Fix README.md 2024-10-03 16:03:42 +02:00
dselen 392a9c6f53 Merge pull request #414 from DaanSelen/main
Second try. Merged Docker update.
2024-10-03 15:59:33 +02:00
daanselen 145d12b2c8 Added minor changes and deletions. 2024-10-03 08:26:30 -05:00
daanselen 0c5033ff79 fixed issues with commits 2024-10-03 08:23:17 -05:00
Donald Zou 5f46f54dfd Updated mobile UI
Using dvh and vh as fallback for mobile browsers.
2024-10-03 21:20:15 +08:00
daanselen d4819b13eb working tests 2024-10-03 08:15:21 -05:00
Donald Zou 9dd9be3b8c Merge branch 'main' into main 2024-10-03 20:59:58 +08:00
daanselen dd38809866 Rebase 2024-10-03 07:45:24 -05:00
Donald Zou c414725f12 Merge pull request #406 from 3vis97/v4.1-dev-italian
Added italian language issues/#397
2024-10-03 20:13:46 +08:00
Donald Zou d3c8a350a4 Merge branch 'v4.1-dev' into v4.1-dev-italian 2024-10-03 20:13:38 +08:00
Donald Zou e04b748b91 Merge pull request #345 from DaanSelen/conflict-resolved
Updated Docker image
2024-10-03 20:09:31 +08:00
Donald Zou 1eee8c4725 Update 2024-10-03 20:07:50 +08:00
dselen 2b7a4b170c Merge branch 'main' into conflict-resolved 2024-10-03 12:17:18 +02:00
Donald Zou 7c0bf4f137 Fixed #357: Brought back IP Address and Port
But still manually restart WGDashboard is needed
2024-10-03 15:24:50 +08:00
Donald Zou 54bae43d2e Update osmap.vue
Added "Dark Mode" to OSM
2024-10-02 22:00:53 +08:00
Donald Zou 25be1155a6 Added testing to OSM before loading map
Prevent users in locations blocked OSM seeing an empty div
2024-10-02 21:53:57 +08:00
Donald Zou 4905d61a1a Some adjustment on map 2024-10-02 18:01:20 +08:00
Donald Zou ff0147bebb Added OpenStreetMap for Ping and Traceroute 2024-10-02 17:09:35 +08:00
Donald Zou 7fe4889b6e Updated some languages 2024-10-02 17:09:04 +08:00
Donald Zou 3c9b1b1833 Thanks to Pixnet for providing the Russian translation :) 2024-09-27 22:07:50 +08:00
daanselen 2a46c873b8 Removed Debian container 2024-09-27 03:22:03 -05:00
Trevis97 6ed09324ad Updated Italian translations and fixed typos upstream/issues/#397 2024-09-26 22:32:43 +02:00
Mattia Trevisani d1f9c10790 Added italian language upstream/issues/#397 2024-09-26 22:31:27 +02:00
Donald Zou 5d041b2fd3 Update README.md 2024-09-25 18:01:05 +08:00
Donald Zou 5cea0fa87b Merge pull request #401 from orangeferdi/patch-3
Create de.json
2024-09-25 00:11:05 +08:00
Donald Zou 6f140eef29 Merge pull request #400 from orangeferdi/patch-2
Update active_languages.json
2024-09-25 00:10:52 +08:00
Donald Zou e5850adfd7 Update dashboard.py 2024-09-24 22:54:18 +08:00
orangeferdi 6921833ce2 Create de.json
Adding german language
2024-09-24 10:13:34 +02:00
orangeferdi 57b9accd97 Update active_languages.json
Adding german language
2024-09-24 10:10:16 +02:00
Donald Zou de94f5b233 Update README.md 2024-09-24 00:40:20 +08:00
Donald Zou b5519a73fb Merge pull request #398 from shuricksumy/v4.1-dev-uk
Add Ukrainian language
2024-09-23 16:32:00 +08:00
Oleksandr Suchkov c5d8c2c355 Add Ukrainian language 2024-09-22 23:58:38 +01:00
Donald Zou c5b02a426c Update README.md 2024-09-23 03:12:06 +08:00
Donald Zou 4cae910b68 Added some update :) 2024-09-23 03:07:48 +08:00
Donald Zou b664fccce2 Finished Chinese Simplified and Traditional translation 2024-09-23 00:17:30 +08:00
Donald Zou 21672f99d1 Translating to zh-cn is done 2024-09-22 21:50:30 +08:00
Donald Zou c269e46892 Added some new translation 2024-09-22 16:44:36 +08:00
Donald Zou 8534e8cf5b Still working on translating.... 2024-09-22 16:33:22 +08:00
Donald Zou 94bf1c2484 Finished translating most of the UI. Left with notifications 2024-09-19 22:32:15 +08:00
Donald Zou b3b30470fc Merge branch 'main' of https://github.com/donaldzou/WGDashboard 2024-09-19 14:45:11 +08:00
Donald Zou 41d91e75fc Prepare for v4.0.4 2024-09-19 14:44:49 +08:00
Donald Zou a97a91b844 Merge pull request #395 from donaldzou/fix-#391
Fixed issue where Preshared Key is not added when unrestricted peers
2024-09-19 14:31:41 +08:00
Donald Zou f1c577ab76 Fixed issue mentioned in #391 2024-09-19 14:21:38 +08:00
Donald Zou 17a9fe5024 Fixed issue mentioned in #391 2024-09-17 14:42:25 +08:00
Donald Zou d74a76dee3 Merge pull request #389 from donaldzou/v4.0.3-fix
Merge new changes to v4.1
2024-09-14 16:23:17 +08:00
Donald Zou c01201b88e Merge branch 'v4.1-dev' into v4.0.3-fix 2024-09-14 16:23:08 +08:00
Donald Zou 833bdf878a Update dashboard.py 2024-09-14 15:49:41 +08:00
Donald Zou 891990b2f1 Merge pull request #387 from donaldzou/v4.0.3-fix
Ready for v4.0.3
2024-09-14 15:44:26 +08:00
Donald Zou e9ab7029c9 Ready for v4.0.3 2024-09-14 15:21:10 +08:00
Donald Zou 6f681dba09 Merge pull request #386 from donaldzou/v4.0.3-fix
Update privatePublicKeyInput.vue
2024-09-14 15:14:50 +08:00
Donald Zou b3edff947d Update privatePublicKeyInput.vue
Fixed issue mentioned in #375
2024-09-14 15:13:47 +08:00
Donald Zou ce6d80d601 Update dashboard.py 2024-09-14 15:11:06 +08:00
Donald Zou a80a2866de Almost done... 2024-09-13 16:32:56 +08:00
Donald Zou 02c2221970 Still working on localization 2024-09-12 15:21:42 +08:00
Donald Zou d35bd6e75b Merge pull request #379 from donaldzou/DaanSelen-patch-1
Update README.md
2024-09-12 12:17:24 +08:00
dselen f3a2f98864 Update README.md
Removed Docker notice, because it is no longer relevant.
2024-09-10 10:12:57 +02:00
Donald Zou a3a312e3db Still working on translation... 2024-09-09 23:43:55 +08:00
dselen f5cb5c4516 Merge branch 'main' into conflict-resolved 2024-09-09 09:01:07 +02:00
Donald Zou d458a28337 Started working on localization 😏 2024-09-06 22:38:56 +08:00
Donald Zou a102a780f8 Adjusted search functions 2024-09-06 17:15:38 +08:00
Donald Zou 4dbbc32108 Updated Bootstrap Icons 2024-09-06 16:32:05 +08:00
Donald Zou b6aedb43ee Fixed updating WG configuration path 2024-09-06 16:31:54 +08:00
Donald Zou ec50dcbbd9 Preshared Key switch is added for both single and bullk add peers 2024-09-05 17:10:24 +08:00
Donald Zou bcc983f11f Update presharedKeyInput.vue
Added preshared key switch
2024-09-05 16:43:46 +08:00
Donald Zou 809651054e Update dashboard.py 2024-09-05 16:17:56 +08:00
Donald Zou 2e965ceb9e Update dashboard.py 2024-09-05 14:51:00 +08:00
Martin e35f942964 Update dashboard.py - sort WG configurations
Sort WG configurations alphabetically
2024-09-04 14:40:04 +02:00
daanselen 40e6fce281 Fix typos 2024-08-27 02:30:01 -05:00
dselen 2139865876 Merge pull request #1 from DaanSelen/dev
Dev
2024-08-27 09:28:16 +02:00
daanselen c3cda05d98 Move fix. 2024-08-27 02:26:19 -05:00
daanselen 548f3db33d quickfix 2024-08-26 16:16:43 -05:00
daanselen a76e9ed98b Testing more changes for better handling of variables. 2024-08-26 16:16:09 -05:00
daanselen c0ef41a9bb Forgot to reorder 2024-08-26 15:54:27 -05:00
daanselen f6e5d9675a Alternative testing. 2024-08-26 15:53:53 -05:00
daanselen ef028659d8 Testing improvement 2024-08-26 15:46:17 -05:00
daanselen 40f39e918d Finished work for now on the alpine docker image. 2024-08-26 15:28:27 -05:00
daanselen 2ec3ee2734 Fixed typo 2024-08-26 13:42:08 -05:00
daanselen bc29b89a16 Rebased and going further 2024-08-26 13:07:42 -05:00
Donald Zou e21853286e Did some refactor on wgd.sh 2024-08-25 16:26:36 +08:00
Donald Zou c012b8c4a5 Merge pull request #340 from donaldzou/v4.0-alpine-linux
V4.0 alpine linux
2024-08-25 16:19:23 +08:00
Donald Zou 48f6c28556 Merge pull request #334 from NOXCIS/main
Fixed Docker Image
2024-08-25 16:18:34 +08:00
Noxcis 0c1502f801 Streamiline
+ Added Docker Install arg to wgd.sh
2024-08-25 03:01:21 -05:00
Donald Zou fec20ed381 Reduced the time to open the config file 2024-08-25 15:59:48 +08:00
Donald Zou 252c147dcf Update dashboard.py 2024-08-25 15:15:07 +08:00
Donald Zou 453d474104 Fixed multiple IP address on a Configuration 2024-08-25 15:14:09 +08:00
Donald Zou 84cf4a9b66 Update README.md 2024-08-25 11:43:06 +08:00
Noxcis fb016bebde Update wgd.sh 2024-08-24 20:04:07 -05:00
Noxcis 8f6a738481 Docker 2 Stage 2024-08-24 20:02:34 -05:00
Noxcis b07f958577 Update compose.yaml 2024-08-24 06:46:06 -05:00
Noxcis 8da0fde52a + 2024-08-24 06:45:13 -05:00
Donald Zou 39be16cb63 Update README.md 2024-08-24 19:37:18 +08:00
Donald Zou 59d0c0def4 Merge pull request #337 from donaldzou/v4.0-alpine-linux
V4.0 alpine linux
2024-08-24 16:30:43 +08:00
Donald Zou 79c03db9a0 Update 2024-08-24 16:27:02 +08:00
Noxcis 0c77823020 Update main.yml 2024-08-24 03:00:51 -05:00
Noxcis deed7e0022 Update main.yml 2024-08-24 02:56:40 -05:00
Noxcis 99db8c7335 Update main.yml 2024-08-24 02:53:30 -05:00
Noxcis 9fe2aa9ed5 Update main.yml 2024-08-24 02:49:51 -05:00
Noxcis 4c80dc256b Update main.yml 2024-08-24 02:46:43 -05:00
Noxcis cafe9e9c11 Update main.yml 2024-08-24 02:41:57 -05:00
Noxcis 27ff4e63b6 Update main.yml 2024-08-24 02:38:10 -05:00
Noxcis 8020714e07 Update main.yml 2024-08-24 02:33:56 -05:00
Noxcis dbd825ba4b Update main.yml 2024-08-24 02:28:35 -05:00
Noxcis fee6cf29eb Update main.yml 2024-08-24 02:26:30 -05:00
Noxcis 56287d8e7a Update main.yml 2024-08-24 02:18:21 -05:00
Noxcis 45504eaf95 Update main.yml 2024-08-24 02:15:41 -05:00
Noxcis b8a9b1150a Update main.yml 2024-08-24 02:13:04 -05:00
Donald Zou 8bd0e43f58 Update wgd.sh 2024-08-24 15:12:28 +08:00
Noxcis 2c83e9e83c Update main.yml 2024-08-24 02:06:57 -05:00
Noxcis 53c9ca10a7 Update main.yml 2024-08-24 02:04:46 -05:00
Noxcis 75fbdac42e Update main.yml 2024-08-24 01:40:34 -05:00
Noxcis 09d54546ca Update main.yml 2024-08-24 01:34:03 -05:00
Noxcis b62fece3d0 Update main.yml 2024-08-24 01:29:51 -05:00
Noxcis 284a2b7f64 Update main.yml 2024-08-24 01:25:50 -05:00
Noxcis 9c873ccbbd Update main.yml 2024-08-24 01:22:37 -05:00
Noxcis 5f72f90031 Update main.yml 2024-08-24 01:18:49 -05:00
Noxcis 93cf3c69b8 Update main.yml 2024-08-24 01:04:28 -05:00
Noxcis 88f856cbc7 Create DockerScout.yml 2024-08-24 01:01:56 -05:00
Noxcis 2d5796d161 Added Auto Config Creation
Reimplemented Automatic Wireguard Configuration Generation

Setting global Env Vars via the docker image build is still insecure, better to pass to dashboard before init.
2024-08-23 16:49:54 -05:00
daanselen 1d20dc9fcb Looking like a promising end of this task. 2024-08-23 13:01:50 -05:00
daanselen 49502235b5 These needed to be added. 2024-08-23 12:48:33 -05:00
daanselen 6e9d71fcf8 Added reverted some no longer needed changes 2024-08-23 12:48:16 -05:00
daanselen 27c7e33773 added RHEL etc workings. 2024-08-23 12:27:41 -05:00
daanselen 3012619049 testing 2024-08-23 11:58:14 -05:00
dselen d6801966c4 Merge branch 'donaldzou:main' into main 2024-08-23 16:19:58 +02:00
daanselen 518e29118c Reoganise the documents and added experimental Alpine Linux support in wgd.sh 2024-08-23 07:46:41 -05:00
Noxcis acf4f3fbf0 Merge branch 'main' of https://github.com/NOXCIS/WGDashboard 2024-08-22 23:16:46 -05:00
Noxcis 8378030c70 Fixed Docker Vulnerability
+ Switched Base Image to Alpine
+ Simplified Docker Build
+ Added Alpine support to wgd.sh script.
+ Maintained Project Layout.
2024-08-22 23:15:39 -05:00
Donald Zou dc7140d486 Update README.md 2024-08-23 09:24:18 +08:00
daanselen e3771a1c53 Refined logging output a bit. 2024-08-22 16:58:29 -05:00
daanselen 2e9ac00a42 modified all and patched security vulnerability issue #333 2024-08-22 16:31:47 -05:00
daanselen 4b8b3acd39 Small readme change 2024-08-22 14:00:55 -05:00
daanselen 8703798ca0 Modified all files and have a working product, awaiting feedback! 2024-08-22 13:38:29 -05:00
dselen 47ac438844 Update README.md
Rearranged Ubuntu match other descending formats.
2024-08-22 16:24:07 +02:00
daanselen bd3aa28523 Changed readme and compose for templating. 2024-08-20 14:48:36 -05:00
daanselen 68d0ae4002 Added context and refined code. 2024-08-20 13:54:49 -05:00
daanselen 6991039640 Working prototype. 2024-08-20 12:58:30 -05:00
daanselen 00611ef9dc Progress so far. 2024-08-20 09:58:25 -05:00
Donald Zou 3c50e4768a Merge pull request #317 from donaldzou/v4.0-fix3
Fixed recursive use of cursor
2024-08-20 00:02:46 -07:00
Donald Zou 63dc9834be Fixed recursive use of cursor 2024-08-20 00:02:00 -07:00
Donald Zou f042e42633 Adjust version to v4.0.2 2024-08-19 21:30:47 -04:00
Donald Zou 39b80a2e7e Fixed the issue where updating is not working 2024-08-19 19:17:07 -04:00
Donald Zou fb6e948358 Update production UI 2024-08-19 16:55:18 -04:00
Donald Zou 181b0845bf Merge pull request #313 from donaldzou/v4.0-fix2
Fixed #312, #311
2024-08-19 16:50:48 -04:00
Donald Zou b2a82dcfe5 Fixed #312, #311
- Fixed issue in #312: The dashboard will automatically get the actual Dashboard version number.
- Fixed issue in #311: WGDashboard was not treating restricted peers correctly.
2024-08-19 16:50:00 -04:00
Noxcis ed1c05dec9 Merge branch 'main' of https://github.com/NOXCIS/WGDashboard 2024-08-18 21:34:42 -05:00
Donald Zou cd73aef0c9 Merge pull request #307 from donaldzou/donaldzou-patch-3
Update README.md
2024-08-17 20:34:29 -04:00
Donald Zou ed522ec024 Update README.md 2024-08-17 20:34:20 -04:00
Donald Zou 16998d1e16 Merge pull request #306 from donaldzou/v4.0-fix1
Fixed peer status is not refreshing correctly
2024-08-17 20:25:34 -04:00
Donald Zou 11421d2d32 Try now 2024-08-17 20:19:52 -04:00
Donald Zou 1af708aaea Update 2024-08-17 01:11:48 -04:00
Donald Zou fbb82fa759 Update README.md 2024-08-17 01:00:40 -04:00
Donald Zou a9f977c3b4 Merge pull request #303 from donaldzou/v4
Merging the v4 branch to main.
2024-08-17 00:56:29 -04:00
Donald Zou 5669e22548 Removed all deprecated JS files 2024-08-17 00:52:38 -04:00
Donald Zou da4bb9b83d Merge branch 'main' into v4 2024-08-17 00:46:46 -04:00
Donald Zou c2cbaf0937 I think this is it :) 2024-08-17 00:31:46 -04:00
Donald Zou d81dce536c Update README.md 2024-08-16 23:32:16 -04:00
Donald Zou 8e1e2c5b85 Update README.md 2024-08-16 23:24:20 -04:00
Donald Zou 959d5e6822 Update README.md 2024-08-16 23:22:55 -04:00
Donald Zou 036a0b4cb3 Update README.md 2024-08-16 23:18:28 -04:00
Donald Zou c038f14374 Update README.md 2024-08-16 23:03:01 -04:00
Donald Zou 343cf91643 Update README.md 2024-08-16 23:02:36 -04:00
Donald Zou 4fe70a4c46 Update README.md 2024-08-16 23:01:58 -04:00
Donald Zou 59f7200512 Update README.md 2024-08-16 22:53:23 -04:00
Donald Zou 0335e709c2 Update README.md 2024-08-16 22:51:56 -04:00
Donald Zou a7bb5ac21b Update wgd.sh 2024-08-16 17:36:22 -04:00
Donald Zou 99655cab33 Update wgd.sh 2024-08-16 17:35:38 -04:00
Donald Zou 348e574154 Update wgd.sh 2024-08-16 17:34:54 -04:00
Donald Zou f35dee8643 Update wgd.sh 2024-08-16 17:34:03 -04:00
Donald Zou 168412c2e7 Update wgd.sh 2024-08-16 17:32:34 -04:00
Donald Zou b9832542fb Update wgd.sh 2024-08-16 17:24:50 -04:00
Donald Zou 316545b253 Update wgd.sh 2024-08-16 17:23:16 -04:00
Donald Zou 348a57a0d8 Update wgd.sh 2024-08-16 17:22:57 -04:00
Donald Zou a3f5654816 Update wgd.sh 2024-08-16 17:21:42 -04:00
Donald Zou 8207afe806 Update wgd.sh 2024-08-16 17:20:05 -04:00
Donald Zou e15b8f8092 Update wgd.sh 2024-08-16 17:19:07 -04:00
Donald Zou e6c99028d6 Update wgd.sh 2024-08-16 17:16:54 -04:00
Donald Zou 2e691d7c26 Update wgd.sh 2024-08-16 17:13:18 -04:00
Donald Zou 6c87812780 Update wgd.sh 2024-08-16 17:12:40 -04:00
Donald Zou 798a3632cf Update wgd.sh 2024-08-16 03:32:28 -04:00
Donald Zou aa1d0aabd2 Update wgd.sh 2024-08-16 03:28:26 -04:00
Donald Zou f348e691fa Update wgd.sh 2024-08-16 03:27:24 -04:00
Donald Zou 0dfda83e45 Update wgd.sh 2024-08-16 03:25:25 -04:00
Donald Zou 56044fa3f7 Update wgd.sh 2024-08-16 03:18:08 -04:00
Donald Zou 4c69fd4f60 Update wgd.sh 2024-08-16 03:14:03 -04:00
Donald Zou 92e3f7a6a3 Update wgd.sh 2024-08-16 03:12:29 -04:00
Donald Zou 76d0618d6e Update wgd.sh 2024-08-16 03:11:30 -04:00
Donald Zou 80c3a99eb1 Update wgd.sh 2024-08-16 03:10:26 -04:00
Donald Zou 91e3a3237b Update wgd.sh 2024-08-16 03:06:31 -04:00
Donald Zou 8c8c5a5826 Update wgd.sh 2024-08-16 03:02:45 -04:00
Donald Zou b9370955d6 Update wgd.sh 2024-08-16 02:53:45 -04:00
Donald Zou 2761e728f7 Update wgd.sh 2024-08-16 02:50:54 -04:00
Donald Zou f418bf4f63 Update wgd.sh 2024-08-16 02:48:31 -04:00
Donald Zou 3d046e4369 Update wgd.sh 2024-08-16 02:40:25 -04:00
Donald Zou b6eb6f2d70 Update wgd.sh 2024-08-16 02:19:30 -04:00
Donald Zou 45ce3e26c1 Update wgd.sh 2024-08-16 02:15:10 -04:00
Donald Zou ae91cedf76 Update wgd.sh 2024-08-16 02:07:40 -04:00
Donald Zou b2a6b484b5 Update wgd.sh 2024-08-16 02:03:41 -04:00
Donald Zou 95c4fa56cc Update wgd.sh 2024-08-16 02:01:02 -04:00
Donald Zou e8c56afa8e Update wgd.sh 2024-08-16 02:00:45 -04:00
Donald Zou ddc3b1f6c2 Update wgd.sh 2024-08-16 01:58:40 -04:00
Donald Zou d33d886574 Update wgd.sh 2024-08-16 01:55:53 -04:00
Donald Zou 0487980d2f Update wgd.sh
Selectively use a specific version of Python: 3.10, 3.11 or 3.12
2024-08-16 01:47:44 -04:00
Donald Zou e68257d6c9 Updated some documentations 2024-08-15 23:20:29 -04:00
Donald Zou ea0bbab680 Update api-documents.md 2024-08-15 22:50:01 -04:00
Donald Zou 5d4a8136c5 Updated some documentation 2024-08-15 22:47:44 -04:00
Donald Zou c98d851cd2 No longer reading configuration file every few seconds
Only when the file is changed
2024-08-15 18:26:20 -04:00
Donald Zou 42fa89db7a Added to parse name in .conf file 2024-08-15 17:45:54 -04:00
Donald Zou 1a70acc6f2 Update documentation 2024-08-15 16:55:34 -04:00
Donald Zou ee0a287112 Update README.md 2024-08-15 00:56:28 -04:00
Donald Zou cf16a66c63 Update README.md 2024-08-15 00:53:38 -04:00
Donald Zou 4544b17c94 Update README.md 2024-08-15 00:53:23 -04:00
Donald Zou 8119c9da51 Update README.md 2024-08-15 00:49:21 -04:00
Donald Zou baf4d75c01 Update documentations 2024-08-15 00:48:27 -04:00
Donald Zou ac9eff0fcc Removed images 2024-08-14 23:59:50 -04:00
Donald Zou dc57bd92ff Update README.md 2024-08-14 23:57:45 -04:00
Donald Zou 3c56a2c868 Update README.md 2024-08-14 23:55:52 -04:00
Donald Zou 2d2ab10a24 Update README.md 2024-08-14 23:54:54 -04:00
Donald Zou ac906c9994 Update README.md 2024-08-14 23:53:28 -04:00
Donald Zou 480406d579 Update README.md 2024-08-14 23:52:14 -04:00
Donald Zou 47efb644b7 Working on some updates 2024-08-14 22:45:36 -04:00
Donald Zou fd0e519e41 Fixed some API endpoint missed the prefix 2024-08-14 18:40:28 -04:00
Donald Zou 0c8bb990d0 Some UI adjustment 2024-08-14 14:35:49 -04:00
Donald Zou bd7139827b Update 2024-08-14 12:31:37 -04:00
Donald Zou 4f648aff52 Updated UI for smaller screen 2024-08-14 12:07:53 -04:00
Donald Zou 3feb45dc01 Fixed for URL protocol 2024-08-14 10:59:01 -04:00
Donald Zou 0489dc7c33 Update fetch.js
Fixed for running over HTTPS
2024-08-14 10:57:41 -04:00
Donald Zou a30843cff9 Added app prefix for URL 2024-08-14 01:17:47 -04:00
Donald Zou 3a34a0eb40 Adjusted some UI 2024-08-13 12:29:58 -04:00
Donald Zou e3f82e136a Adjusted some UI 2024-08-12 18:04:41 -04:00
Donald Zou 8a7df4ba9f Update wgd.sh 2024-08-12 01:19:55 -04:00
Donald Zou e86d1a4c7a Updated langugage 2024-08-12 00:34:54 -04:00
Donald Zou 5b9d0b60a1 Adjusted some UI 2024-08-11 19:20:52 -04:00
Donald Zou 7eff2f0c49 Fixed issue #250 2024-08-11 19:20:42 -04:00
Donald Zou 97236bb01d Fixed new configuration hang when error 2024-08-11 19:20:03 -04:00
Donald Zou 9c6aa12f48 Update README.md 2024-08-11 16:53:50 -04:00
Donald Zou 96ccb03eea Adjusted some code for electron version 2024-08-11 16:39:00 -04:00
Donald Zou 55f55820c5 Update wg-dashboard.service 2024-08-11 11:02:08 -04:00
Donald Zou 955839d513 I think cross server actually worked 2024-08-11 01:48:13 -04:00
Donald Zou a650e628e5 CORS SUCCESS!!! 2024-08-10 19:23:50 -04:00
Donald Zou 54142b73fb Ohhhhh kay testing CORS :) 2024-08-10 19:03:21 -04:00
Donald Zou 55e0d2695d Update .gitignore 2024-08-10 12:58:41 -04:00
Donald Zou 2f90ab15dc Let's try ElectronJS 2024-08-10 12:58:14 -04:00
Donald Zou fd3fc66bfc Thinking of adding Electron.js 2024-08-10 00:25:25 -04:00
Donald Zou a352a94d8a Update .gitignore 2024-08-10 00:24:07 -04:00
Donald Zou 410b81f46f Some UI adjustment 2024-08-09 22:16:38 -04:00
Donald Zou aa3711c5cc Adjusted search peer UI 2024-08-09 21:30:01 -04:00
Donald Zou d6b1f97a04 Update 2024-08-09 20:46:11 -04:00
Donald Zou b4e8e57a22 Updated UI for nav bar 2024-08-09 17:58:41 -04:00
Donald Zou 9644e6195c Finished adding data usage on configuration list 2024-08-09 17:30:44 -04:00
Donald Zou 764e0c7607 Replaced all cursor without recursive use 2024-08-09 17:29:57 -04:00
Donald Zou 97d640dd40 Update dashboard.py 2024-08-09 16:09:55 -04:00
Donald Zou d2915b5b05 Update dashboard.py 2024-08-09 16:09:23 -04:00
Donald Zou f274f6fd18 Fixed some bugs.. 2024-08-09 16:09:08 -04:00
Donald Zou f507ac2569 Rewrote the add peer function 2024-08-08 23:27:13 -04:00
Donald Zou 208cbd6d89 Peer data reset function is don e 2024-08-08 20:56:14 -04:00
Donald Zou cd2aa2902a Update README.md 2024-08-07 00:44:46 -04:00
Donald Zou fa2d7fa3da Peer Sharing is done :) 2024-08-07 00:37:05 -04:00
Donald Zou 7463767781 Sharing peer is done, fixed #294
Fixed issue #294 with a Vue.js plugin instead of using the `datatime-local` input tag.

Still need to work on the end-user UI for sharing.
2024-08-06 19:15:00 -04:00
Donald Zou 958bc864c9 The sharing function is almost done 2024-08-06 10:17:14 -04:00
Donald Zou 4484668750 Backend for peer sharing is done 2024-08-05 19:57:17 -04:00
Donald Zou d5dea4b87f Fixed the issue mentioned in #290 2024-08-05 17:55:58 -04:00
Donald Zou 0fdef6a0a2 fixing some Gunicorn bugs.. again.. 2024-08-05 15:39:11 -04:00
Donald Zou bd71b6bad8 Update gunicorn.conf.py 2024-08-04 20:24:31 -04:00
Donald Zou 9b7887b279 Update gunicorn.conf.py 2024-08-04 20:23:41 -04:00
Donald Zou 3960e43872 Update gunicorn.conf.py 2024-08-04 20:22:41 -04:00
Donald Zou 201c8f9ec9 Update dashboard.py 2024-08-04 20:17:29 -04:00
Donald Zou 8c8374a08c Update wgd.sh 2024-08-04 20:16:26 -04:00
Donald Zou 467595afc9 Update wgd.sh 2024-08-04 20:15:46 -04:00
Donald Zou acb54f098c Update gunicorn.conf.py 2024-08-04 20:13:17 -04:00
Donald Zou 5755d13460 Update gunicorn.conf.py 2024-08-04 19:45:28 -04:00
Donald Zou 2c3500315d Update gunicorn.conf.py 2024-08-04 19:36:49 -04:00
Donald Zou 47ea60c0cd Testing v4 2024-08-04 19:35:59 -04:00
Donald Zou 18b18c1396 Update wgd.sh 2024-08-04 19:33:05 -04:00
Donald Zou ff227de5fa Update gunicorn.conf.py 2024-08-04 19:32:16 -04:00
Donald Zou 6799692811 Testing.. 2024-08-04 19:30:48 -04:00
Donald Zou c6173f7f6f Update wgd.sh 2024-08-04 19:22:26 -04:00
Donald Zou d0e4dabc44 Update wgd.sh 2024-08-04 19:22:06 -04:00
Donald Zou f815dae300 Update wgd.sh 2024-08-04 19:21:38 -04:00
Donald Zou b3bd6bb39e Update wgd.sh 2024-08-04 19:20:31 -04:00
Donald Zou 71df6409c2 Update gunicorn.conf.py 2024-08-04 19:17:41 -04:00
Donald Zou e4f9a1e0cf Update gunicorn.conf.py 2024-08-04 19:03:30 -04:00
Donald Zou ca6a05e393 Update gunicorn.conf.py 2024-08-04 18:59:45 -04:00
Donald Zou c0d26164dc Update wgd.sh 2024-08-04 18:48:13 -04:00
Donald Zou 76fe2a1ba9 Update wgd.sh 2024-08-04 18:45:57 -04:00
Donald Zou 8cbdb54402 Still fixing Gunicron 2024-08-04 16:08:05 -04:00
Donald Zou 764ef80a62 Update wgd.sh 2024-08-04 15:44:55 -04:00
Donald Zou 0c37d93c01 Testing if this will fix bash exit before Gunicorn ran... 2024-08-04 15:29:07 -04:00
Donald Zou c57a5128e5 Update wgd.sh 2024-08-04 03:20:44 -04:00
Donald Zou 6cf4eba20a Redirect when received a 401 error 2024-08-04 01:31:31 -04:00
Donald Zou 6825d728c2 Log function is completed 2024-08-03 17:03:39 -04:00
Donald Zou 6d3091b2a2 Push dockerfiles 2024-08-03 15:29:56 -04:00
Donald Zou 61473877a4 Update wgd.sh 2024-08-03 14:01:04 -04:00
Donald Zou 52989c8f5c Fixed clearInterval is not working within configuration 2024-08-03 13:26:16 -04:00
Donald Zou b64ba2ef16 Fixed Gunicorn global variable issue 2024-08-03 13:25:57 -04:00
Donald Zou 461ae99dd8 Testing again... 2024-08-02 21:48:42 -04:00
Donald Zou 8681df6f02 Seems like Gunicorn need global 2024-08-02 21:45:55 -04:00
Donald Zou ba081ee442 Update wgd.sh 2024-08-02 21:21:19 -04:00
Donald Zou cf90d05115 Update wgd.sh 2024-08-02 18:30:16 -04:00
Donald Zou 658c6554af Update wgd.sh 2024-08-02 18:18:31 -04:00
Donald Zou 94d9d608f7 Update wgd.sh 2024-08-02 18:16:34 -04:00
Donald Zou 015b50be5f Doing some testing across distros 2024-08-02 17:27:28 -04:00
Donald Zou 85970f8c96 New build 2024-07-31 02:27:44 -04:00
Donald Zou 1740ab0bbe Update README.md 2024-07-31 02:23:20 -04:00
Donald Zou 9d2b5593a2 Add files via upload 2024-07-31 02:21:42 -04:00
Donald Zou 881d62d69d The UI and backend of API keys is done! 2024-07-30 18:45:05 -04:00
Donald Zou 935129f0a5 Finished the log system, now move on to something else... 2024-07-29 22:17:51 -04:00
Donald Zou 1a9bdc5e6d Merge pull request #288 from donaldzou/donaldzou-patch-3
Update README.md
2024-07-29 18:58:49 -04:00
Donald Zou 1f565bca10 Update README.md 2024-07-29 18:58:39 -04:00
Donald Zou da089197a3 Changed the name 2024-07-29 18:56:56 -04:00
Donald Zou 2df8f41d6c Changed v4.0 preview GIF 2024-07-29 18:56:35 -04:00
Donald Zou 4e4f0d4c97 Create S1creen Recording 2024-07-29 at 5.59.53 PM.webm 2024-07-29 18:40:46 -04:00
Donald Zou eaad22c0a1 Create proxy.js 2024-07-29 18:40:19 -04:00
Donald Zou 63e8553a09 Finished job logs :) 2024-07-29 18:40:07 -04:00
Donald Zou b65828416f Job logs api are done, still need to build the UI to view logs 2024-07-27 18:51:43 -04:00
Donald Zou 48dc8033f5 Schedule system is finally running, still need to more testing :) 2024-07-01 00:58:02 +08:00
Donald Zou 2d838b69fd Peer schedule style is almost done
But I don't feel it quite right..
2024-06-25 23:02:13 +08:00
Donald Zou 6c529a6908 Fixed Gunicorn issue, continue on Peer Schedule Job 2024-06-19 17:09:58 +08:00
Donald Zou 9baefec541 Figuring out with Gunicorn... 2024-06-18 03:40:25 +08:00
Donald Zou 327d66bb80 Removed a tons of files :) 2024-06-18 03:16:42 +08:00
Donald Zou 760a4dfcb9 Still working on schedule.. 2024-06-16 23:32:32 +08:00
Donald Zou ceb8cdd337 Merge pull request #281 from donaldzou/donaldzou-patch-3
Update README.md
2024-06-16 15:42:28 +08:00
Donald Zou 570c754eec Update README.md 2024-06-16 15:42:17 +08:00
Donald Zou 8ed75d1d21 Working on Job Scheduling 2024-06-16 15:40:10 +08:00
Donald Zou 54710b8221 Update .gitignore 2024-06-15 23:14:48 +08:00
Donald Zou ff794033e1 Finished Traceroute 2024-06-13 16:56:06 +08:00
Donald Zou f0f486da9e Adjusted some UI and finished the Ping function 2024-06-12 17:54:29 +08:00
Donald Zou aedcfd1d24 Merge pull request #277 from DaanSelen/main
Added updated Docker functionality.
2024-06-11 22:40:38 +08:00
daanselen 44e738acf5 Merge branch 'main' of https://github.com/DaanSelen/WGDashboard-dockerized 2024-06-10 20:36:13 +02:00
daanselen 701b45c286 Improved (imo) the use of English. 2024-06-10 20:34:30 +02:00
dselen 72fe687d82 Update Docker-explain.md 2024-06-09 23:13:31 +02:00
dselen 632cd66b57 Update Docker-explain.md 2024-06-09 23:13:19 +02:00
daanselen 20530c000e Added container documentation, and added a few new comments. 2024-06-09 23:11:22 +02:00
Daan 8824786fb4 For some reason, cloning the GitHub (which has been simplified) works from the Dockerfile directly.
But the wg0.conf file needs a re-copy on run-time. Working now.

Made code modifications and optimizations.

Please report bugs to me.
2024-06-08 13:30:24 +02:00
Daan bdeb4a4efe Cleaned up lingering code line. 2024-06-07 14:55:16 +02:00
Daan cf455fc19b Modified code so that the docker logging makes sense. Also fixed a bug which can happen with iptables (-s illegal option). Pushing to repo. 2024-06-07 13:25:46 +02:00
Daan 1bcddadb7a Features tested working, feeling good about a release. 2024-06-06 16:11:49 +02:00
Daan 6dc28f11e0 Working on isolated peers feature. 2024-06-06 00:12:11 +02:00
Daan 8ad601fcc0 Added features, plus explanations in about them in the compose.yaml file. Looking great! 2024-06-05 20:27:24 +02:00
Daan f400844a3d Modified scripts 2024-06-05 09:16:29 +02:00
Daan 560096878f Persistency seems to work with this model, it has succeeded my tests. 2024-06-04 23:26:03 +02:00
Daan 0938f5ab71 Container deployed with working VPN server built-in. Missing is persistency among recreations, looking into that... 2024-06-04 22:49:17 +02:00
Daan 06193d27c0 Added dockerfile and entrypoint for basic compilation, moving to finalizing 2024-06-04 17:05:17 +02:00
Donald Zou eb18857ecc Some UI adjustment 2024-06-03 02:16:09 +08:00
Donald Zou 9a280e99ad Finished restrict & allow access of peers 2024-06-02 23:22:43 +08:00
Donald Zou c7ca20b45a Made some progress ;) 2024-05-20 22:28:52 +08:00
Donald Zou 60e64a3646 Merge pull request #269 from donaldzou/donaldzou-patch-2
Update README.md
2024-05-14 22:44:20 +08:00
Donald Zou d60f89976e Update README.md 2024-05-14 22:44:09 +08:00
Donald Zou 41e05ddf9c Update dashboard_new.py
Yay adding peers in bulk is finally done ;)
2024-05-14 00:58:01 +08:00
Donald Zou 5a34f16dcf Update dashboard_new.py
Typo in `updatePeer`
2024-05-13 22:17:00 +08:00
Donald Zou 769ca4e26d Kind of finished revamping add peers
Still need to clean some of the codes but overall is good :)
2024-05-12 00:39:17 +08:00
Donald Zou b6e62b08e4 Merge pull request #265 from donaldzou/v3.0.6.2
Update dashboard.py
2024-05-04 11:42:10 +08:00
Donald Zou effe5b32fd Update dashboard.py 2024-05-04 11:40:32 +08:00
Donald Zou 9e38137e76 Removed DNS as a required field from peer settings 2024-05-03 10:15:00 +08:00
Donald Zou 57c2e89f00 Fixing some of the issue from users ;) 2024-04-26 00:03:42 +08:00
Donald Zou 914a0bf514 Minor updates... 2024-04-03 01:16:56 -04:00
Donald Zou 210f5eabc9 Merge pull request #261 from donaldzou/donaldzou-patch-1
Update FUNDING.yml
2024-03-31 11:20:04 -04:00
Donald Zou 5f5c91a8ff Update FUNDING.yml 2024-03-31 11:19:54 -04:00
Donald Zou 05c7121c8a Update README.md 2024-03-31 00:55:46 -04:00
Donald Zou 551a8e9588 Add files via upload 2024-03-31 00:53:00 -04:00
Donald Zou 75fbdb653a Update build 2024-03-24 22:55:19 -04:00
Donald Zou bdfe75cff3 Finished download & QR Code 2024-03-24 22:46:32 -04:00
Donald Zou bcd845fd59 Finished revamping peer edit 2024-03-24 18:24:01 -04:00
Donald Zou f1e71ecb78 20240323 Commit
Finished implementing peer settings dropdown and planned how peer settings will be link
2024-03-21 02:03:08 -04:00
Donald Zou 0aa4c8af6f Continue to work on v4 ;0 2024-03-11 00:11:07 -04:00
Donald Zou 8fe5507ff8 Update README.md 2024-02-27 18:38:10 -05:00
Donald Zou a950b80d5a v4 branch first commit! 2024-02-27 18:37:49 -05:00
Donald Zou ed3bb6429b Finished some building blocks on the new version 2024-02-26 10:22:33 -05:00
Donald Zou 1e88491ca1 I am giving up on using ORM...
Lets go back to the good old sql query days ;)
2024-02-11 23:53:51 -05:00
Donald Zou 4aed647865 Merge pull request #254 from Upellift99/main
Enabling use of underscores in configuration name
2024-02-01 18:39:05 -05:00
John 74ab7aaa3d Enabling use of underscores in configuration name. 2024-02-01 09:53:04 +01:00
John dcf2055851 Enabling use of underscores in configuration name. 2024-02-01 09:47:52 +01:00
Donald Zou 6b6ad05e3a The UI for New Configuration is done 2024-01-31 12:06:44 -05:00
Donald Zou 734a4b5e00 Merge pull request #252 from donaldzou/donaldzou-patch-1
Update README.md
2024-01-23 15:11:21 -05:00
Donald Zou da70fac0b6 Update README.md 2024-01-23 15:11:02 -05:00
Donald Zou 5f4a364095 Huge update
A welcome session
Added Time based One-Time-Passcode (TOTP)
UI Update
2024-01-23 15:09:44 -05:00
Donald Zou 95a8867527 Update .gitignore 2024-01-11 13:47:35 -05:00
Donald Zou 7cb1301e80 Continue to refactor the UI and APIs :) 2024-01-11 13:46:08 -05:00
Donald Zou e6e070d89e Continue to refactor the UI and APIs :) 2024-01-11 01:10:26 -05:00
Donald Zou ba2bcaba07 Finally figured out SQLAlchemy and started to re-write some of the APIs. The UI will completely handle by JS with Vue. There will be no more templating from flask to minimize the resource usage ;) 2024-01-10 01:42:19 -05:00
Donald Zou 3d6ecba4f5 Update README.md 2024-01-09 14:10:08 -05:00
Donald Zou 864f82ba11 Started to refactor dashboard.py with dashboard_new.py and trying really hard to figure out sqlalchemy lol 2024-01-09 00:25:47 -05:00
Donald Zou f671c992e1 testing something... 2024-01-08 12:23:57 -05:00
Donald Zou 86220694ce Update README.md
Added instruction to install `net-tools`. It is required for the Python package `ifcfg`. Seems like it is not pre-installed on a fresh debian based system.
2023-12-10 13:01:45 -05:00
Donald Zou 77f31177c8 Update .gitignore 2023-12-10 12:56:49 -05:00
Donald Zou 33ff91aea8 Update .gitignore 2023-12-10 12:56:02 -05:00
Noxcis a4151800f1 Update requirements.txt 2023-12-05 04:47:40 -08:00
Noxcis 932f24c966 Update dashboard.py 2023-12-05 04:44:01 -08:00
Donald Zou 0c0bce9755 Combining Vue.js!!! How exciting!
Adding Vue.js to handle frontend changes, leaving the server only need to response json data. Ditching flask template and hope it can reduce the memory and cpu usage :)
2023-11-30 09:42:02 -05:00
Donald Zou f07508073f A new update to the dev branch 2023-11-28 16:37:16 -05:00
Donald Zou 2c9cade70a Create SECURITY.md 2023-03-23 13:07:36 -04:00
Donald Cheng Hong Zou e06cc1bd2d Finally finished theme switching!!!! 2022-04-23 00:34:11 -04:00
Donald Cheng Hong Zou 36e33a4c10 Adjust the dark mode theme for PWA 2022-04-22 16:21:16 -04:00
Donald Cheng Hong Zou 7f668c1653 Some changes to dark mode css 2022-04-22 00:12:22 -04:00
Donald Zou b464fa98df Merge pull request #173 from LeoEricson/v3.1-dev
Add dark theme
2022-04-21 22:33:40 -04:00
LeoEricson 23491f1e8c Add dark theme 2022-04-21 21:30:55 +00:00
Donald Cheng Hong Zou 2b90a2eed2 Update header.html 2022-04-21 15:11:35 -04:00
Donald Cheng Hong Zou 13b9d15d8f New darkmode theme 2022-04-21 15:11:01 -04:00
Donald Cheng Hong Zou a053504bb8 Make the dashboard more mobile friendly 2022-04-11 20:01:29 -04:00
Donald Zou d7d7a84bd5 Update README.md 2022-04-10 09:35:50 -04:00
Donald Zou 990463fbea Update README.md 2022-04-10 09:29:07 -04:00
Donald Cheng Hong Zou dcdd4aec85 Update Peer Data Usage Graph 2022-04-10 09:26:54 -04:00
Donald Zou 0d9a8ba6f7 Update README.md 2022-04-06 21:05:24 -04:00
Donald Cheng Hong Zou 179da2ac05 Finished peer data usage chart 2022-04-06 20:59:23 -04:00
Donald Cheng Hong Zou 4848739b6e Added dockerfile! Thanks @ikidd! 2022-04-05 21:39:47 -04:00
Donald Cheng Hong Zou 46da285831 Adjusted js 2022-03-30 14:20:08 -04:00
Donald Cheng Hong Zou 71a6a36a54 Update dashboard.css 2022-03-30 14:06:05 -04:00
Donald Cheng Hong Zou c8ca9ef7ab Minimized some js code 2022-03-30 00:54:11 -04:00
Donald Cheng Hong Zou 5af2fff9ca IPv6 configuration IP should be working now 2022-03-29 15:11:50 -04:00
Donald Zou edbaf3ac82 Update README.md 2022-03-29 12:27:39 -04:00
Donald Cheng Hong Zou 337c9bc01e Update dashboard.py 2022-03-28 15:33:26 -04:00
Donald Zou cd84674ae0 Update README.md 2022-03-28 08:23:12 -04:00
Donald Cheng Hong Zou a196dce1fa Removed flask-socketio 2022-03-28 08:09:28 -04:00
Donald Zou f60ea43f29 Create codeql-analysis.yml 2022-03-27 21:44:49 -04:00
Donald Zou 76f547a726 Update README.md 2022-03-26 11:14:27 -04:00
Donald Zou dffe5e0819 Update README.md 2022-03-25 14:11:39 -04:00
Donald Cheng Hong Zou b9633bbcd6 Finished implementing add/delete config 2022-03-24 20:43:56 -04:00
Donald Cheng Hong Zou 46efe2b8dd Finished developing add config 2022-03-24 02:10:52 -04:00
Donald Zou fb9ef0c547 Update README.md 2022-03-22 17:34:34 -04:00
Donald Cheng Hong Zou d52cd2b17c Doing a update 2022-03-22 17:28:19 -04:00
Donald Cheng Hong Zou cefa80f317 Fixed redirect functionality 2022-03-22 16:17:12 -04:00
Donald Cheng Hong Zou cc1dd682e8 Add configuration and adjusted redirect functionality 2022-03-22 16:13:57 -04:00
Donald Cheng Hong Zou bdd984a887 Brand new switch button and toast UI 2022-03-21 22:33:19 -04:00
Donald Cheng Hong Zou 2d3dffe5fc Moved refresh interval and display mode to localStorage 2022-03-07 09:29:47 -05:00
Donald Cheng Hong Zou 65f31a0b38 Gave up using WebSocket
Flask-SocketIO does not fully compatible with Gunicorn, and it limited to 1 worker, which it will takes forever to finish loading the webpage. Switched back to  using ajax.
2022-03-04 22:09:01 -05:00
Donald Cheng Hong Zou 4a1a6c5933 Testing 2022-03-04 10:06:14 -05:00
Donald Cheng Hong Zou 7e1fd99c37 Fixed chart and updated requirement.txt 2022-03-04 08:28:54 -05:00
Donald Cheng Hong Zou 8fe8209580 Added line graph using chart.js & Improving websocket.
Added line graph to show total receive & total sent changes per refresh interval, using chart.js line chart to show the changes. Switching configuration don't need to refresh anymore, by using websocket.
2022-03-03 08:46:23 -05:00
Donald Cheng Hong Zou 264a050360 Temp fix 2022-02-28 13:34:46 -05:00
Donald Cheng Hong Zou 3623104e3b Merge branch 'main' into hmm-what-about-socket 2022-02-28 13:31:06 -05:00
Donald Cheng Hong Zou 191ff1abec Merge branch 'main' of https://github.com/donaldzou/WGDashboard 2022-02-28 13:29:25 -05:00
Donald Cheng Hong Zou 3bb86493cc Minor changes 2022-02-28 13:29:17 -05:00
Donald Zou d1d3151e1e Update README.md 2022-02-27 15:50:55 -05:00
Donald Cheng Hong Zou f9dc9ebdb3 Removed some unnecessary comments 2022-02-11 09:35:58 -05:00
Donald Cheng Hong Zou 3b478bcc2d OneDrive gone again.... 2022-02-04 21:36:46 -05:00
Donald Cheng Hong Zou 77bb78c381 OneDrive caused my whole project folder gone.... 2022-02-04 11:44:50 -05:00
Donald Cheng Hong Zou cafa97f502 Changed version number 2022-01-31 16:09:50 -05:00
Donald Cheng Hong Zou 0d858493d5 Update README.md 2022-01-31 09:56:38 -05:00
Donald Cheng Hong Zou 99fb07c6b3 Fixed public key error with existed private key 2022-01-31 09:38:05 -05:00
Donald Zou eaad971c0a Update README.md 2022-01-24 22:06:38 -05:00
Donald Cheng Hong Zou 377abd87fd Commit 2022-01-24 20:11:35 -05:00
Donald Zou af71176296 Merge pull request #133 from donaldzou/v3.0.3-pr
v3.0.3
2022-01-23 19:34:06 -05:00
Donald Cheng Hong Zou 69737177ef Changed version number to v3.0.3 2022-01-23 19:30:43 -05:00
Donald Cheng Hong Zou efae1222c1 Update dashboard.py 2022-01-23 19:25:12 -05:00
Donald Cheng Hong Zou 3caea1a903 Update README.md 2022-01-23 19:21:43 -05:00
Donald Cheng Hong Zou a43478d627 Fixed no init_dashboard() for debug mode the first time 2022-01-23 19:19:38 -05:00
Donald Cheng Hong Zou ed2c3f43c7 Added tracking loading time 2022-01-19 10:43:39 -05:00
Donald Cheng Hong Zou 84c9846f7b Hmmmm... What about SocketIO? 2022-01-19 10:27:17 -05:00
Donald Cheng Hong Zou fcfd816cec Remove pylint 2022-01-19 09:25:27 -05:00
Donald Cheng Hong Zou 2e3977e59c commit 2022-01-19 09:18:03 -05:00
Donald Cheng Hong Zou 3c68430336 Update pylint.yml 2022-01-19 09:12:57 -05:00
Donald Cheng Hong Zou 43afb86fa8 Update pylint.yml 2022-01-19 09:10:59 -05:00
Donald Cheng Hong Zou 194ccbdbb4 Update pylint.yml 2022-01-19 09:10:07 -05:00
Donald Cheng Hong Zou 7139e230cf Commit 2022-01-19 09:08:27 -05:00
Donald Zou 120d3b9f54 Update pylint.yml 2022-01-19 09:05:39 -05:00
Donald Zou 712460a040 Update pylint.yml 2022-01-19 09:03:35 -05:00
Donald Zou be5594f1c9 Create pylint.yml 2022-01-19 09:01:35 -05:00
Donald Cheng Hong Zou 0a885117db Update README.md 2022-01-18 13:04:00 -05:00
Donald Zou 5b73654544 Update README.md 2022-01-18 12:43:37 -05:00
Donald Cheng Hong Zou 1485b78b7b Merge branch 'main' of https://github.com/donaldzou/WGDashboard 2022-01-18 12:43:20 -05:00
Donald Cheng Hong Zou bfec57172a Update README.md 2022-01-18 12:43:11 -05:00
Donald Zou 9f8559c12d Update README.md 2022-01-18 12:34:40 -05:00
Donald Zou 83dde12ca9 Merge pull request #126 from donaldzou/Migrate-to-SQLite
Production branch for v3.0
2022-01-18 12:33:34 -05:00
Donald Cheng Hong Zou d17888db4e Update README.md 2022-01-18 12:33:21 -05:00
Donald Cheng Hong Zou 096529af96 Experimental Functions 2022-01-18 12:16:10 -05:00
Donald Cheng Hong Zou 8a56b22635 Added manifest.json 2022-01-18 11:02:19 -05:00
Donald Cheng Hong Zou dcdd353981 Removed unnecessary files 2022-01-18 10:49:41 -05:00
Donald Cheng Hong Zou 258564208b Finalizing everything. 2022-01-18 10:42:23 -05:00
Donald Cheng Hong Zou e2e8222005 Upload manifest.json 2022-01-16 20:35:24 -05:00
Donald Cheng Hong Zou 75f2826805 Merge branch 'pr/93' into Migrate-to-SQLite 2022-01-13 09:44:47 -05:00
Donald Cheng Hong Zou 730af4f2ee Finishing documentation 2022-01-13 09:37:23 -05:00
Donald Zou e5737ebd9d Merge branch 'main' into Migrate-to-SQLite 2022-01-12 21:41:41 -05:00
Donald Cheng Hong Zou 7f24904164 Bugs 2022-01-12 20:28:12 -05:00
Donald Cheng Hong Zou 9ff7198602 Still finalizing everything 2022-01-12 19:53:36 -05:00
Donald Cheng Hong Zou 6d56967a0f Getting ready for v3.0 2022-01-08 15:26:17 -05:00
Donald Cheng Hong Zou 584118805a Feature Added
Moved key generating to front-end, by using wireguard.js from WireGuard's official repository. Added "Add Peers by bulk" feature.
2022-01-06 15:17:43 -05:00
Donald Zou 68b3f01082 Merge pull request #127 from pgalonza/refactoring
Fixed misprint
2022-01-04 16:41:26 -05:00
Donald Cheng Hong Zou 77a82cb84b Finished adding available IP and related UI adjustment 2022-01-04 16:32:23 -05:00
Galonza Peter 844b19495d fixed misprint 2022-01-03 00:51:22 +03:00
Donald Cheng Hong Zou b8b721f2bd Delete wgdashboard.db 2022-01-02 14:45:24 -05:00
Donald Cheng Hong Zou 4f93d48ac6 Successfully migrate to SQlite 2022-01-02 14:44:27 -05:00
Donald Zou 02d1bf5a2c Merge pull request #125 from pgalonza/refactoring
Refactoring
2022-01-02 14:41:24 -05:00
Galonza Peter fb3606c2b7 Refactored
Added docstrings like sphinx style, small refactoring and added TODO
2022-01-02 16:35:39 +03:00
Galonza Peter a5bc2cd48f wg_conf_path is global variable 2022-01-01 03:20:30 +03:00
Galonza Peter 72151ac6a3 db path is global variable 2022-01-01 02:57:59 +03:00
Donald Cheng Hong Zou e2c8b3bf02 Removed Semaphore for configuration file 2021-12-31 13:29:37 -05:00
Donald Cheng Hong Zou 06dd641274 Minified all CSS and JS script 2021-12-30 15:21:25 -05:00
Donald Cheng Hong Zou 7d9bf01d27 Cleaned configuration.js
Removed unused functions and duplicated jQuery selector
2021-12-29 23:26:15 -05:00
Donald Cheng Hong Zou b9553e0a05 Update dashboard.py
Finished refactoring some variable name
2021-12-29 16:15:00 -05:00
Donald Cheng Hong Zou 993dcaf235 Merge branch 'main' of https://github.com/donaldzou/WGDashboard 2021-12-29 15:30:52 -05:00
Donald Cheng Hong Zou 8d7c39bac4 Update dashboard.py
Wrapped all reading and writing to dashboard configuration into functions
2021-12-29 15:29:29 -05:00
Donald Zou 80933ab571 Merge pull request #124 from pgalonza/fix-variables
Fixed variables name
2021-12-29 14:57:53 -05:00
Donald Cheng Hong Zou b5b30c8119 Update dashboard.py 2021-12-29 14:57:44 -05:00
Galonza Peter bca06129d9 fixed variables name 2021-12-29 22:56:19 +03:00
Donald Zou a136b86d81 Merge pull request #122 from pgalonza/change-path
Fixed variable name
2021-12-29 14:20:52 -05:00
Donald Zou 8d555d8ae7 Merge pull request #121 from pgalonza/refactoring
Refactoring
2021-12-29 13:57:21 -05:00
Donald Zou c22e61add2 Merge branch 'main' into refactoring 2021-12-29 13:57:11 -05:00
Donald Zou 2c83f1ce57 Merge pull request #120 from pgalonza/fix-download
Fixed download configuration file for peer
2021-12-29 12:21:29 -05:00
Donald Cheng Hong Zou f2750de153 Feature adding and UI adjustment
Added Preshared-Key to all configuration
2021-12-29 12:17:44 -05:00
Galonza Peter e0934f11d6 Merge branch 'main' into fix-download 2021-12-29 02:00:36 +03:00
Galonza Peter 422924026a fixed variable name 2021-12-29 02:00:18 +03:00
Galonza Peter 332e22e534 Merge branch 'main' into refactoring
# Conflicts:
#	src/dashboard.py
2021-12-29 01:51:41 +03:00
Galonza Peter c7bf30e18e pylint warnings 2021-12-29 00:59:10 +03:00
Galonza Peter 5ade5176c0 fixed download configuration file for peer 2021-12-28 22:55:52 +03:00
Donald Zou f9e4fafe9f Merge pull request #96 from pgalonza/change-path
Added the ability to change the path for files to be saved
2021-12-27 21:05:34 -05:00
Donald Zou 201f2ef1f0 Merge branch 'main' into change-path 2021-12-27 21:05:25 -05:00
Donald Zou 32af4fdcca Merge pull request #119 from donaldzou/v3.0-beta
Finishing v3.0
2021-12-27 21:01:24 -05:00
Donald Cheng Hong Zou d254b4cc39 Finishing v3.0 2021-12-27 21:01:02 -05:00
Galonza Peter d0ad4e05bf general refactoring 2021-12-28 00:29:26 +03:00
Galonza Peter c75854cb7b fixed after merge 2021-12-27 00:35:10 +03:00
Galonza Peter 8cc71913b3 fixed read configuration after merge 2021-12-26 23:17:19 +03:00
Galonza Peter 99abe6bcd2 Merge branch 'main' into change-path 2021-12-26 12:58:44 +03:00
Galonza Peter f5ad7a49ce general refactoring 2021-12-26 12:57:57 +03:00
Donald Cheng Hong Zou e42ecf3c99 Update wgd.sh 2021-12-25 17:45:47 -05:00
Donald Cheng Hong Zou b58bf9dc17 Update wgd.sh 2021-12-25 17:40:53 -05:00
Donald Cheng Hong Zou 745c8aaf3e Update wgd.sh 2021-12-25 17:40:08 -05:00
Donald Cheng Hong Zou 0ca73bf80b Update wgd.sh 2021-12-25 17:38:13 -05:00
Donald Cheng Hong Zou fd76cabd01 Update wgd.sh 2021-12-25 17:37:43 -05:00
Donald Cheng Hong Zou fcf9300a49 Update wgd.sh 2021-12-25 17:35:36 -05:00
Donald Cheng Hong Zou 649b66ba1a Update wgd.sh 2021-12-25 17:20:52 -05:00
Donald Cheng Hong Zou b5d73a0861 Delete hi.txt 2021-12-25 17:20:31 -05:00
Donald Cheng Hong Zou 1453996ccb Update wgd.sh 2021-12-25 17:16:50 -05:00
Donald Cheng Hong Zou 5bf9b97d70 Update wgd.sh 2021-12-25 17:15:33 -05:00
Donald Cheng Hong Zou 5c1e46f5a6 Update wgd.sh 2021-12-25 17:13:21 -05:00
Donald Cheng Hong Zou c2665cbae8 Update wgd.sh 2021-12-25 17:13:08 -05:00
Donald Cheng Hong Zou 3934248a6b Update wgd.sh 2021-12-25 17:08:59 -05:00
Donald Cheng Hong Zou 7ae3bb5601 Testing update function 2021-12-25 17:07:33 -05:00
Donald Cheng Hong Zou 9890d4f3bc Removed using venv for now 2021-12-25 16:29:33 -05:00
Donald Cheng Hong Zou 5b47fc16d9 Update wgd.sh 2021-12-25 16:08:30 -05:00
Galonza Peter 344770a0a4 Merge branch 'main' into change-path
# Conflicts:
#	src/dashboard.py
2021-12-25 23:42:10 +03:00
Donald Cheng Hong Zou fc11cacd24 Update wgd.sh 2021-12-25 15:20:56 -05:00
Donald Cheng Hong Zou 737ebdd0c6 Update wgd.sh 2021-12-25 15:20:04 -05:00
Galonza Peter d06dddfa24 Merge branch 'main' into change-path 2021-12-25 23:17:40 +03:00
Donald Cheng Hong Zou 710d631ffe Update wgd.sh 2021-12-25 15:17:07 -05:00
Donald Cheng Hong Zou 7d9a845ca0 Update wgd.sh 2021-12-25 14:48:38 -05:00
Donald Cheng Hong Zou cc6e5ffb97 Update wgd.sh 2021-12-25 14:46:47 -05:00
Donald Cheng Hong Zou 8d29cb7488 Testing Python venv 2021-12-25 14:44:14 -05:00
Donald Cheng Hong Zou 5c588ea01a Style adjustment
Adjusted style and the status light: Added box-shadow and border for connected peer
2021-12-24 00:20:44 -05:00
Donald Zou dade9935da Merge pull request #117 from donaldzou/v3.0-Slow-Load-Fix
Slow Performance Fixed
2021-12-24 00:19:26 -05:00
Donald Cheng Hong Zou 34cd3aaaca Slow Performance Fixed 2021-12-23 21:26:24 -05:00
Donald Cheng Hong Zou 78d3f338fb Update dashboard.py 2021-12-22 11:36:29 -05:00
Donald Zou d801c5911e Merge pull request #91 from pgalonza/todo-ipv6
Add IPv6
2021-12-22 11:35:17 -05:00
Galonza Peter 003743c074 Merge branch 'main' into gunicorn 2021-12-21 22:41:03 +03:00
Galonza Peter 4cef39d3b1 Merge branch 'main' into gunicorn-tmp
# Conflicts:
#	src/wgd.sh
2021-12-21 22:38:31 +03:00
Galonza Peter 83f0df32d7 added thread 2021-12-21 22:23:26 +03:00
Galonza Peter 24f269191c added Let’s Encrypt via certbot 2021-12-21 22:23:13 +03:00
Galonza Peter 94a0d5a0a4 refactored 2021-12-21 22:23:05 +03:00
Galonza Peter c0fbf4dd0c optimized performance
# Conflicts:
#	src/gunicorn.conf.py
2021-12-21 22:22:37 +03:00
Galonza Peter 37b6161075 fixed check gunicorn process 2021-12-21 22:20:43 +03:00
Galonza Peter c9b792c370 fixed update variable 2021-12-21 22:20:31 +03:00
Galonza Peter 2103d547a1 fixed initiation for gunicorn 2021-12-21 22:18:36 +03:00
Galonza Peter 3918e220d2 style 2021-12-21 22:17:32 +03:00
Galonza Peter c3eaaed43b fixed stop 2021-12-21 22:17:07 +03:00
Galonza Peter e0bf648076 added paths when command as root 2021-12-21 22:16:40 +03:00
Galonza Peter bb298164e4 added gunicorn in requirements 2021-12-21 22:15:55 +03:00
Galonza Peter 898694b9be fixed gunicorn start and added stop 2021-12-21 22:15:41 +03:00
Galonza Peter f0f9ac92e6 added gunicorn start 2021-12-21 22:15:23 +03:00
Galonza Peter ea0229a8ab added wsgi for gunicorn 2021-12-21 22:15:08 +03:00
Donald Zou 66fc7cd91d Merge pull request #112 from reafian/main
Added MTU and PersistentKeepalive to QR code and download files
2021-12-21 14:12:42 -05:00
Donald Zou c11d4f01b1 Merge pull request #114 from donaldzou/all-contributors/add-marneu
docs: add marneu as a contributor for code
2021-12-21 13:54:03 -05:00
Donald Zou a8f498f292 Merge pull request #113 from donaldzou/marneu-main
Marneu main
2021-12-21 13:53:51 -05:00
allcontributors[bot] 6854e2275f docs: update .all-contributorsrc [skip ci] 2021-12-21 18:53:40 +00:00
allcontributors[bot] 6662e79ac5 docs: update README.md [skip ci] 2021-12-21 18:53:39 +00:00
Donald Cheng Hong Zou 9e77430634 Added Slash 2021-12-21 13:52:08 -05:00
Richard Newton b8e070824a Update get_conf.html
Added MTU and PersistentKeepalive back into QR Code.

Update dashboard.py

Added MTU and PersistentKeepalive to downloaded file.
2021-12-21 16:48:11 +00:00
Donald Cheng Hong Zou 304d4293f3 Update wgd.sh 2021-12-20 19:54:53 -05:00
Donald Zou a03e7f5b53 Merge pull request #111 from donaldzou/marneu-main
Marneu main
2021-12-19 18:18:50 -05:00
Donald Zou ea57c8cad4 Merge branch 'main' into marneu-main 2021-12-19 18:18:45 -05:00
Donald Cheng Hong Zou 280802cf74 Update .gitignore 2021-12-19 18:16:45 -05:00
Donald Cheng Hong Zou fbce01d846 Update .gitignore 2021-12-19 18:15:51 -05:00
Markus Neubauer 591b60c336 Update wgd.sh
a more automated approach to systemctl
2021-12-19 18:13:15 -05:00
Markus Neubauer 78ef870d91 Update wg-dashboard.service
A more automated approach
2021-12-19 18:13:15 -05:00
Donald Zou bc19d82aed Merge pull request #105 from marneu/patch-1
An automated way to a systemctl unit
2021-12-19 18:07:35 -05:00
Donald Zou 79b41e1056 Update README.md 2021-12-06 14:15:22 -05:00
Markus Neubauer 805f03d231 Update .gitignore 2021-11-25 16:03:09 +01:00
Donald Zou 62acc1081f Update README.md 2021-11-19 14:48:46 -05:00
Donald Zou 257a2c2d9f Update README.md 2021-11-19 14:45:37 -05:00
Donald Zou ed9b05cdf9 Update README.md 2021-11-19 14:44:40 -05:00
Donald Zou 2cc6fbd643 Update README.md 2021-11-10 11:40:46 -05:00
Galonza Peter bdfc260dd2 fixed 2021-10-24 13:32:21 +03:00
Galonza Peter 7ad65956c9 fixed, if dir is exists 2021-10-24 12:45:08 +03:00
Galonza Peter b3dc60b7ca fixed check ipv6 dns 2021-10-24 12:05:14 +03:00
Galonza Peter bed08109fa not needed 2021-10-24 02:10:20 +03:00
Galonza Peter 06cedec090 mistake 2021-10-24 01:58:59 +03:00
Galonza Peter 1d2c468d03 fixed, when database does not create, if no directory 2021-10-24 01:51:04 +03:00
Galonza Peter e84616f5f5 added the ability to change the path for files to be saved 2021-10-24 00:56:34 +03:00
Galonza Peter caa9a90476 added dual-stack 2021-10-17 22:55:08 +03:00
Galonza Peter 62be683dd8 fixed search ipv6 in the string with comma 2021-10-17 21:13:18 +03:00
Galonza Peter ffa63b3f82 completed todo. Added IPv6 2021-10-17 20:22:27 +03:00
Galonza Peter c5a7788394 optimized pattern 2021-10-17 20:01:16 +03:00
Donald Zou 99c42ff2c1 Merge pull request #90 from pike00/pike00-update-readme
Updated README to include username/password
2021-10-14 10:14:38 -04:00
Will Pike fd2b7bb917 Updated README to include username/password
Updated Installation instructions to include default username/password in step 6 on login. It is located in the 'Dashboard Configuration' section, however for readability/ease of setting up the server, I added the default login to the install instructions.
2021-10-14 10:10:17 -04:00
Donald Cheng Hong Zou 922a494df0 Finished 2021-09-09 12:50:38 -04:00
Donald Cheng Hong Zou c478ec0095 Update README.md 2021-09-09 12:45:09 -04:00
Donald Cheng Hong Zou 3abbe17910 Naming changed 2021-09-09 12:43:49 -04:00
Donald Zou 349076599f Merge pull request #80 from ikidd/patch-1
Fixed service unit file spelling error
2021-09-09 12:35:44 -04:00
ikidd 92d299507f Fixed service unit file spelling error 2021-09-08 20:36:53 -06:00
Donald Cheng Hong Zou 6f2d61e918 Update README.md 2021-09-08 22:02:33 -04:00
Donald Cheng Hong Zou ed13babf6a Merge branch 'main' of https://github.com/donaldzou/Wireguard-Dashboard into main 2021-09-08 22:01:01 -04:00
Donald Cheng Hong Zou 80db82eb93 Update dashboard.py 2021-09-08 22:00:53 -04:00
Donald Zou 8d20334d6e Update README.md 2021-09-08 21:59:15 -04:00
Donald Zou 03a95ad018 Merge pull request #79 from donaldzou/v2.3.1
Update README.md
2021-09-08 21:58:02 -04:00
Donald Cheng Hong Zou aa59cc8af0 Update README.md 2021-09-08 21:57:50 -04:00
Donald Zou 80d63c2c89 Merge pull request #78 from donaldzou/v2.3.1
Changed dashboard naming to WGDashboard
2021-09-08 21:56:48 -04:00
Donald Cheng Hong Zou 03a4acd72b Changed dashboard naming to WGDashboard 2021-09-08 21:56:31 -04:00
Donald Cheng Hong Zou 53118cf660 Merge branch 'main' of https://github.com/donaldzou/Wireguard-Dashboard into main 2021-09-08 16:58:40 -04:00
Donald Cheng Hong Zou 16b1baf81e Update README.md 2021-09-08 16:58:36 -04:00
Donald Zou 960e0d0965 Update README.md 2021-09-08 14:50:26 -04:00
Donald Zou 8f41222e43 Merge pull request #77 from donaldzou/v2.3
Update README.md
2021-09-08 12:43:09 -04:00
Donald Cheng Hong Zou e7bc447166 Update README.md 2021-09-08 12:42:50 -04:00
Donald Zou 1736359615 Merge pull request #76 from donaldzou/v2.3
V2.3
2021-09-08 12:42:11 -04:00
Donald Cheng Hong Zou 58784b1e22 v2.3 Final Commit 2021-09-08 12:39:25 -04:00
Donald Zou 07f2bfd279 Merge pull request #75 from donaldzou/all-contributors/add-davejlong
docs: add davejlong as a contributor for code
2021-09-08 11:24:04 -04:00
allcontributors[bot] 6d62db2890 docs: update .all-contributorsrc [skip ci] 2021-09-08 15:23:38 +00:00
allcontributors[bot] a1b23c4aab docs: update README.md [skip ci] 2021-09-08 15:23:37 +00:00
Donald Zou e272a096da Merge pull request #74 from donaldzou/all-contributors/add-reafian
docs: add reafian as a contributor for code
2021-09-05 16:38:57 -04:00
allcontributors[bot] b8ca24c5bf docs: update .all-contributorsrc [skip ci] 2021-09-05 20:38:34 +00:00
allcontributors[bot] a05d09f0de docs: update README.md [skip ci] 2021-09-05 20:38:33 +00:00
Donald Zou 1807a79c4f Create FUNDING.yml 2021-09-04 17:16:31 -04:00
Donald Cheng Hong Zou 77f6826af9 Adjusted UI and edit readme 2021-09-03 17:32:51 -04:00
Donald Cheng Hong Zou 7e39eedf35 Update wgd.sh 2021-09-03 14:40:57 -04:00
Donald Cheng Hong Zou 0b4b48ceae Update wgd.sh 2021-09-03 14:30:13 -04:00
Donald Cheng Hong Zou dad931e898 Update wgd.sh 2021-09-03 14:26:27 -04:00
Donald Cheng Hong Zou 2e387730cb Update wgd.sh 2021-09-03 14:26:05 -04:00
Donald Cheng Hong Zou c9b6775793 Update wgd.sh 2021-09-03 14:24:38 -04:00
Donald Cheng Hong Zou a6eaf30c2b Update wgd.sh 2021-09-03 14:24:14 -04:00
Donald Cheng Hong Zou 6f91d199d8 Update wgd.sh 2021-09-03 14:23:08 -04:00
Donald Cheng Hong Zou 7ea486307a Update wgd.sh 2021-09-03 14:22:14 -04:00
Donald Cheng Hong Zou 37d254c827 Update wgd.sh 2021-09-03 13:55:41 -04:00
Donald Cheng Hong Zou b4014eb317 Update wgd.sh 2021-09-03 13:55:03 -04:00
Donald Cheng Hong Zou c7824fa184 Update wgd.sh 2021-09-03 13:52:23 -04:00
Donald Cheng Hong Zou 13c5bd45f9 Update wgd.sh 2021-09-02 22:52:22 -04:00
Donald Cheng Hong Zou 465d102bd0 Update wgd.sh 2021-09-02 22:52:01 -04:00
Donald Cheng Hong Zou 93007cd56c Update wgd.sh 2021-09-02 22:27:05 -04:00
Donald Cheng Hong Zou 8367576dc8 Update wgd.sh 2021-09-02 22:24:40 -04:00
Donald Cheng Hong Zou dbc06145b3 Update wgd.sh 2021-09-02 22:24:07 -04:00
Donald Cheng Hong Zou 4efcf0e7c8 Update wgd.sh 2021-09-02 22:13:00 -04:00
Donald Cheng Hong Zou 0a4bbc1106 Update wgd.sh 2021-09-02 22:09:06 -04:00
Donald Cheng Hong Zou b08c1f6699 Updated requirement.txt and wgd.sh 2021-09-02 21:56:50 -04:00
Donald Cheng Hong Zou 6828b905ef Added checking if peers removed directly from config file by not from dashboard, and fixed DNS did not get check from editing peers 2021-08-24 21:04:01 -04:00
Donald Zou f72b405f6d Merge pull request #64 from Kofl/patch-1
Update typo3 fix
2021-08-24 20:19:22 -04:00
Donald Zou 27ae99864c Merge pull request #71 from donaldzou/v2.2.2
v2.2.2 Merge
2021-08-24 20:16:21 -04:00
Donald Cheng Hong Zou 82ba15ba5a Small fix on HTML files 2021-08-24 20:15:28 -04:00
Kofl af01db7bc9 Update typo3 fix
TOTAL RECIEVED replaced with TOTAL RECEIVED
2021-08-18 21:46:06 +02:00
Donald Cheng Hong Zou 6ec0a65d0c Update README.md 2021-08-16 15:32:14 -04:00
Donald Zou c32ccfc9ed Merge pull request #51 from donaldzou/v2.2.1
V2.2.1
2021-08-16 15:29:49 -04:00
Donald Cheng Hong Zou ef818388c8 Update dashboard.py 2021-08-16 15:28:43 -04:00
Donald Cheng Hong Zou f5aa45a3e1 Update README.md 2021-08-16 15:27:10 -04:00
Donald Cheng Hong Zou b7a047a743 Bug fixed 2021-08-16 15:26:15 -04:00
Donald Zou 05ec985453 Update README.md 2021-08-16 12:23:56 -04:00
Donald Cheng Hong Zou 88ed9c3e79 Update README.md 2021-08-15 02:23:35 -04:00
Donald Zou 3fb03c8dfe Update README.md 2021-08-15 00:16:36 -04:00
Donald Zou ff304027cd Merge pull request #46 from donaldzou/v2.2-beta
V2.2 pull request
2021-08-14 23:57:07 -04:00
Donald Cheng Hong Zou 3140d46c94 Finalizing the documentation 2021-08-14 23:43:30 -04:00
Donald Cheng Hong Zou 9d476af384 v2.2beta almost done!!!!! 2021-08-14 23:30:05 -04:00
Donald Cheng Hong Zou 0d380672f3 v2.2 beta 4 2021-08-14 17:13:16 -04:00
Donald Cheng Hong Zou e2fb8dca5b Update README.md 2021-08-06 00:08:30 -04:00
Donald Cheng Hong Zou eaba4c90c5 Edit Readme 2021-08-06 00:00:32 -04:00
Donald Cheng Hong Zou b4ca7373f3 Update Readme 2021-08-05 23:47:18 -04:00
Donald Cheng Hong Zou 905c068ed5 v2.2-beta4
Finished testing the QR code function and finish debugging the peer file download function.
2021-08-05 23:15:50 -04:00
Donald Cheng Hong Zou 02886dd420 Remove public and private key txt 2021-08-05 01:39:32 -04:00
Donald Cheng Hong Zou 5bf7754d6c Update README.md 2021-08-05 01:21:44 -04:00
Donald Cheng Hong Zou 7a0a3055c4 Update README.md 2021-08-05 01:16:22 -04:00
Donald Cheng Hong Zou bf73efb3b4 Update README.md 2021-08-05 01:15:17 -04:00
Donald Cheng Hong Zou b4da212158 Update README.md 2021-08-05 01:07:10 -04:00
Donald Cheng Hong Zou 4a04d42600 v2.2-beta3
Finished QR code function and starting to test.
2021-08-05 00:45:15 -04:00
Donald Cheng Hong Zou 42bbfbe538 v2.2-beta update 2021-08-03 18:45:40 -04:00
Donald Cheng Hong Zou 31ec2430c4 Update README.md 2021-08-03 18:06:43 -04:00
Donald Cheng Hong Zou f0b56c9f1d Update README.md 2021-08-03 18:06:22 -04:00
Donald Zou 6f9f01c991 Update README.md 2021-07-12 16:35:07 -04:00
Donald Cheng Hong Zou b822ccb19d Update README.md 2021-07-11 13:07:27 -04:00
Donald Zou dcb11671f3 Update README.md 2021-07-11 12:49:58 -04:00
Donald Zou 282599d36f Update README.md 2021-07-05 16:09:02 -04:00
Donald Zou f11acdc68f Update README.md 2021-07-05 15:35:23 -04:00
Donald Zou 971e127cfd Update README.md 2021-07-03 10:30:54 -04:00
Donald Zou 9b2c59d529 Delete wg0.conf 2021-07-02 14:35:34 -04:00
Donald Zou 14dc049a66 Update README.md 2021-07-02 14:31:33 -04:00
Donald Zou d3d0e7c615 Merge pull request #24 from donaldzou/v2.1-beta
v2.1 Merge
2021-07-02 13:28:36 -04:00
Donald Zou 89423ccb8b Merge branch 'main' into v2.1-beta 2021-07-02 13:28:29 -04:00
Donald Cheng Hong Zou 746f31f70c Update README.md 2021-07-02 13:25:35 -04:00
Donald Cheng Hong Zou 3aa9eab2bd Commit June 2 2021-07-02 13:23:04 -04:00
Donald Zou 1bcc8fed5e Update README.md 2021-07-02 12:00:12 -04:00
Donald Zou 1213a030e3 Update README.md 2021-05-13 19:54:37 -04:00
Donald Zou 3b2344b477 Delete .github/workflows directory 2021-05-13 19:51:54 -04:00
Donald Zou c53b0fe2d4 Create main.yml 2021-05-13 19:38:22 -04:00
Donald Zou db05ff5e98 Update README.md 2021-05-08 12:35:22 -04:00
290 changed files with 36552 additions and 2000 deletions
-34
View File
@@ -1,34 +0,0 @@
{
"files": [
"README.md"
],
"imageSize": 100,
"commit": false,
"contributors": [
{
"login": "antonioag95",
"name": "antonioag95",
"avatar_url": "https://avatars.githubusercontent.com/u/30556866?v=4",
"profile": "https://github.com/antonioag95",
"contributions": [
"test",
"code"
]
},
{
"login": "tonjo",
"name": "tonjo",
"avatar_url": "https://avatars.githubusercontent.com/u/4726289?v=4",
"profile": "https://github.com/tonjo",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,
"projectName": "wireguard-dashboard",
"projectOwner": "donaldzou",
"repoType": "github",
"repoHost": "https://github.com",
"skipCi": true
}
+4
View File
@@ -0,0 +1,4 @@
# These are supported funding model platforms
github: [donaldzou]
patreon: DonaldDonnyZou
+70
View File
@@ -0,0 +1,70 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ main ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ main ]
schedule:
- cron: '30 5 * * 4'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript', 'python' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
+55
View File
@@ -0,0 +1,55 @@
name: Docker Scan and Build
on:
push:
branches: [ main ]
schedule:
- cron: "0 0 * * *" # Daily at midnight UTC
workflow_dispatch:
inputs:
trigger-build:
description: 'Trigger a manual build and push'
default: 'true'
env:
DOCKER_IMAGE: donaldzou/wgdashboard
jobs:
docker_build_analyze:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and export (multi-arch)
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: ${{ env.DOCKER_IMAGE }}:latest
platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7
- name: Docker Scout
id: docker-scout
uses: docker/scout-action@v1
with:
command: cves
image: ${{ env.DOCKER_IMAGE }}:latest
only-severities: critical,high,medium,low,unspecified
github-token: ${{ secrets.GITHUB_TOKEN }}
+28
View File
@@ -0,0 +1,28 @@
name: Qodana
on:
workflow_dispatch:
pull_request:
push:
branches: # Specify your branches here
- main # The 'main' branch
- v4.2-dev
jobs:
qodana:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
checks: write
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit
fetch-depth: 0 # a full history is required for pull request analysis
- name: 'Qodana Scan'
uses: JetBrains/qodana-action@v2024.3
with:
pr-mode: false
env:
QODANA_TOKEN: ${{ secrets.QODANA_TOKEN_2090978292 }}
QODANA_ENDPOINT: 'https://qodana.cloud'
+47 -7
View File
@@ -1,12 +1,52 @@
.vscode/sftp.json .vscode
src/.vscode/sftp.json
.DS_Store .DS_Store
wg.db
*.json
.idea .idea
src/test.py src/db
tmp
__pycache__ __pycache__
src/wg-dashboard.ini src/test.py
*.db
src/wg-dashboard.ini src/wg-dashboard.ini
src/static/pic.xd src/static/pic.xd
*.conf
private_key.txt
public_key.txt
venv/**
log/**
release/*
src/db/wgdashboard.db
.jshintrc
node_modules/**
*/proxy.js
src/static/app/proxy.js
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
.DS_Store
dist-ssr
coverage
*.local
/cypress/videos/
/cypress/screenshots/
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
*.tsbuildinfo
.vite/*
+90
View File
@@ -0,0 +1,90 @@
FROM golang:1.23 AS compiler
WORKDIR /go
RUN apt-get update && apt-get install -y --no-install-recommends \
git make bash build-essential \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN git clone --depth=1 https://github.com/amnezia-vpn/amneziawg-tools.git && \
git clone --depth=1 https://github.com/amnezia-vpn/amneziawg-go.git
RUN cd /go/amneziawg-tools/src && make
RUN cd /go/amneziawg-go && \
go get -u ./... && \
go mod tidy && \
make && \
chmod +x /go/amneziawg-go/amneziawg-go /go/amneziawg-tools/src/wg /go/amneziawg-tools/src/wg-quick/linux.bash
RUN echo "DONE AmneziaWG"
### INTERMEDIATE STAGE
FROM scratch AS bins
COPY --from=compiler /go/amneziawg-go/amneziawg-go /amneziawg-go
COPY --from=compiler /go/amneziawg-tools/src/wg /awg
COPY --from=compiler /go/amneziawg-tools/src/wg-quick/linux.bash /awg-quick
# FINAL STAGE
FROM alpine:latest
LABEL maintainer="dselen@nerthus.nl"
COPY --from=bins /amneziawg-go /usr/bin/amneziawg-go
COPY --from=bins /awg /usr/bin/awg
COPY --from=bins /awg-quick /usr/bin/awg-quick
# Declaring environment variables, change Peernet to an address you like, standard is a 24 bit subnet.
ARG wg_net="10.0.0.1"
ARG wg_port="51820"
# Following ENV variables are changable on container runtime because /entrypoint.sh handles that. See compose.yaml for more info.
ENV TZ="Europe/Amsterdam"
ENV global_dns="1.1.1.1"
ENV isolate="none"
ENV public_ip=""
ENV wgd_port="10086"
# Doing package management operations, such as upgrading
RUN apk update \
&& apk add --no-cache bash git tzdata \
iptables ip6tables openrc curl wireguard-tools \
sudo py3-psutil py3-bcrypt \
&& apk upgrade
# Using WGDASH -- like wg_net functionally as a ARG command. But it is needed in entrypoint.sh so it needs to be exported as environment variable.
ENV WGDASH=/opt/wgdashboard
# Removing the Linux Image package to preserve space on the image, for this reason also deleting apt lists, to be able to install packages: run apt update.
# Doing WireGuard Dashboard installation measures. Modify the git clone command to get the preferred version, with a specific branch for example.
RUN mkdir /data \
&& mkdir /configs \
&& mkdir -p ${WGDASH}/src \
&& mkdir -p /etc/amnezia/amneziawg
COPY ./src ${WGDASH}/src
# Generate basic WireGuard interface. Echoing the WireGuard interface config for readability, adjust if you want it for efficiency.
# Also setting the pipefail option, verbose: https://github.com/hadolint/hadolint/wiki/DL4006.
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN out_adapt=$(ip -o -4 route show to default | awk '{print $NF}') \
&& echo -e "[Interface]\n\
Address = ${wg_net}/24\n\
PrivateKey =\n\
PostUp = iptables -t nat -I POSTROUTING 1 -s ${wg_net}/24 -o ${out_adapt} -j MASQUERADE\n\
PostUp = iptables -I FORWARD -i wg0 -o wg0 -j DROP\n\
PreDown = iptables -t nat -D POSTROUTING -s ${wg_net}/24 -o ${out_adapt} -j MASQUERADE\n\
PreDown = iptables -D FORWARD -i wg0 -o wg0 -j DROP\n\
ListenPort = ${wg_port}\n\
SaveConfig = true\n\
DNS = ${global_dns}" > /configs/wg0.conf.template \
&& chmod 600 /configs/wg0.conf.template
# Defining a way for Docker to check the health of the container. In this case: checking the gunicorn process.
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD sh -c 'pgrep gunicorn > /dev/null && pgrep tail > /dev/null' || exit 1
# Copy the basic entrypoint.sh script.
COPY entrypoint.sh /entrypoint.sh
# Exposing the default WireGuard Dashboard port for web access.
EXPOSE 10086
WORKDIR $WGDASH
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]
+63 -188
View File
@@ -1,202 +1,77 @@
<hr> > [!TIP]
<p align=center>I'm looking for someone that have experiences on migrating this project to a Docker app, with a complete solution ;) If you know how please <a href="https://github.com/donaldzou/wireguard-dashboard/issues/20">comment in here</a>.</p> > 🎉 I'm excited to announce that WGDashboard is officially listed on DigitalOcean's Marketplace! For more information, please visit [Host WGDashboard & WireGuard with DigitalOcean](https://donaldzou.dev/WGDashboard-Documentation/host-wgdashboard-wireguard-with-digitalocean.html) for more information!
<hr>
> [!NOTE]
> **Help Wanted 🎉**: Localizing WGDashboard to other languages! If you're willing to help, please visit https://github.com/donaldzou/WGDashboard/issues/397. Many thanks!
![](https://wgdashboard-resources.tor1.cdn.digitaloceanspaces.com/Posters/Banner.png)
<p align="center"> <p align="center">
<img src="https://raw.githubusercontent.com/donaldzou/wireguard-dashboard/main/img/Group%202.png" width="128"> <img alt="WGDashboard" src="https://wgdashboard-resources.tor1.cdn.digitaloceanspaces.com/Logos/Logo-2-Rounded-512x512.png" width="128">
</p> </p>
<h1 align="center"> Wireguard Dashboard</h1> <h1 align="center">WGDashboard</h1>
<p align="center"> <p align="center">
<img src="http://ForTheBadge.com/images/badges/made-with-python.svg"> <img src="https://forthebadge.com/images/badges/made-with-python.svg">
<img src="https://forthebadge.com/images/badges/made-with-javascript.svg">
<img src="https://forthebadge.com/images/badges/license-mit.svg">
</p> </p>
<p align="center">
<img src="https://forthebadge.com/images/badges/built-with-love.svg">
</p>
<p align="center"> <p align="center">
<a href="https://github.com/donaldzou/wireguard-dashboard/releases/latest"><img src="https://img.shields.io/github/v/release/donaldzou/wireguard-dashboard"></a> <a href="https://github.com/donaldzou/wireguard-dashboard/releases/latest"><img src="https://img.shields.io/github/v/release/donaldzou/wireguard-dashboard"></a>
<a href="https://wakatime.com/badge/github/donaldzou/WGDashboard"><img src="https://wakatime.com/badge/github/donaldzou/WGDashboard.svg" alt="wakatime"></a>
<a href="https://hitscounter.dev"><img src="https://hitscounter.dev/api/hit?url=https%3A%2F%2Fgithub.com%2Fdonaldzou%2FWGDashboard&label=Visitor&icon=github&color=%230a58ca"></a>
<img src="https://img.shields.io/docker/pulls/donaldzou/wgdashboard?logo=docker&label=Docker%20Image%20Pulls&labelColor=ffffff">
</p> </p>
<p align="center">Monitoring WireGuard is not convinient, need to login into server and type <code>wg show</code>. That's why this platform is being created, to view all configurations and manage them in a easier way.</p> <p align="center"><b>This project is supported by</b></p>
<p align="center">
<a href="https://m.do.co/c/a84cb9aac585">
<img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width="201px">
</a>
</p>
<p align="center">Monitoring WireGuard is not convenient, in most case, you'll need to login to your server and type <code>wg show</code>. That's why this project is being created, to view and manage all WireGuard configurations in a easy way.</p>
<p align="center">With all these awesome features, while keeping it <b>easy to install and use</b></p>
<p align="center"><b><i>This project is not affiliate to the official WireGuard Project</i></b></p>
<p align="center">
Join our Discord Server for quick help, or you wanna chat about this project!
</p>
<p align="center">
<a align="center" href="https://discord.gg/72TwzjeuWm"><img src="https://img.shields.io/discord/1276818723637956628?labelColor=ffffff&style=for-the-badge&logo=discord&label=Discord"></a>
</p>
<p align="center">
Alternatively, you can also reach out at our Matrix.org Chatroom :)
</p>
<p align="center">
<a href="https://app.element.io/#/room/#wgd:matrix.org">Matrix.org Chatroom</a>
</p>
## 📣 What's New: Version 2.0.1
- Added **Ping** and **Traceroute** tool
- Adjusted the calculation of data usage on each peers
- Added refresh interval of the dashboard
<hr> <hr>
### ⚠️ **Update from v1.x.x** # [Official Documentation](https://donaldzou.dev/WGDashboard-Documentations)
1. Stop the dashboard if it is running. - [💡 Features](https://donaldzou.github.io/WGDashboard-Documentation/features.html)
2. You can use `git pull https://github.com/donaldzou/Wireguard-Dashboard.git v2.0.1` to get the new update inside `Wireguard-Dashboard` directory. - [📝 Requirements](https://donaldzou.github.io/WGDashboard-Documentation/requirements.html)
3. Proceed **Step 2 & 3** in the [Install](#-install) step down below. - [🛠 Install](https://donaldzou.github.io/WGDashboard-Documentation/install.html)
- [🪜 Usage](https://donaldzou.github.io/WGDashboard-Documentation/usage.html)
- [📖 API Documentation](https://donaldzou.github.io/WGDashboard-Documentation/api-documentation.html)
- [And much more...](https://donaldzou.github.io/WGDashboard-Documentation/)
## 💡 Features
# Screenshots
- Add peers for each WireGuard configuration
<img src="https://wgdashboard-resources.tor1.cdn.digitaloceanspaces.com/Documentation%20Images/sign-in.png" alt=""/>
- Manage peer <img src="https://wgdashboard-resources.tor1.cdn.digitaloceanspaces.com/Documentation%20Images/cross-server.png" alt=""/>
<img src="https://wgdashboard-resources.tor1.cdn.digitaloceanspaces.com/Documentation%20Images/index.png" alt=""/>
- Delete peers <img src="https://wgdashboard-resources.tor1.cdn.digitaloceanspaces.com/Documentation%20Images/new-configuration.png" alt="" />
<img src="https://wgdashboard-resources.tor1.cdn.digitaloceanspaces.com/Documentation%20Images/settings.png" alt="" />
- And many more coming up! Welcome to contribute to this project! <img src="https://wgdashboard-resources.tor1.cdn.digitaloceanspaces.com/Documentation%20Images/light-dark.png" alt="" />
<img src="https://wgdashboard-resources.tor1.cdn.digitaloceanspaces.com/Documentation%20Images/configuration.png" alt=""/>
<img src="https://wgdashboard-resources.tor1.cdn.digitaloceanspaces.com/Documentation%20Images/add-peers.png" alt="" />
<img src="https://wgdashboard-resources.tor1.cdn.digitaloceanspaces.com/Documentation%20Images/ping.png" alt=""/>
## 📝 Requirement <img src="https://wgdashboard-resources.tor1.cdn.digitaloceanspaces.com/Documentation%20Images/traceroute.png" alt=""/>
- Ubuntu or Debian based OS, other might work, but haven't test yet. Tested on the following OS:
- [x] Ubuntu 18.04.1 LTS
- [ ] If you have tested on other OS and it works perfectly please provide it to me!
- ‼️ Make sure you have **Wireguard** and **Wireguard-Tools (`wg-quick`)** installed.‼️ <a href="https://www.wireguard.com/install/">How to install?</a>
- Configuration files under **/etc/wireguard**
- **Note: For peers, `PublicKey` & `AllowedIPs` is required.**
- Python 3.7+ & Pip3
## 🛠 Install
**1. Download Wireguard Dashboard**
```shell
git clone -b v2.0.1 https://github.com/donaldzou/Wireguard-Dashboard.git
```
**2. Install Python Dependencies**
```shell
cd Wireguard-Dashboard/src
python3 -m pip install -r requirements.txt
```
**3. Install & run Wireguard Dashboard**
```shell
chmod u+x wgd.sh
./wgd.sh start
```
Access your server with port `10086` ! e.g (http://your_server_ip:10086), continue to read to on how to change port and ip that dashboard is running with.
## 🪜 Usage
**1. Start/Stop/Restart Wireguard Dashboard**
```shell
cd Wireguard-Dashboard/src
./wgd.sh start # Start the dashboard in background
./wgd.sh debug # Start the dashboard in foreground (debug mode)
./wgd.sh stop # Stop the dashboard
./wgd.sh restart # Restart the dasboard
./wgd.sh update # Update the dashboard
```
⚠️ **For first time user please also read the next section.**
## ✂️ Dashboard Configuration
Since version 2.0, Wireguard Dashboard will be using a configuration file called `wg-dashboard.ini`, (It will generate automatically after first time running the dashboard). More options will include in future versions, and for now it included the following config:
### `[Account]`
`username` - Username (Default: `admin`)
`password` - Password, will be hash with SHA256 (Default: `admin`).
### `[Server]`
`wg_conf_path` - The path of all the Wireguard configurations (Default: `/etc/wireguard`)
`app_ip` - IP address the flask will run with (Default: `0.0.0.0`)
`app_port` - Port the flask will run with (Default: `10086`)
`auth_req` - Does the dashboard need authentication (Default: `true`)
- If `auth_req = false` , user will not be access the **Setting** tab due to security consideration. **User can only change the file directly in system**.
`version` - Dashboard Version
All these settings will be able to configure within the dashboard in **Settings** on the sidebar, without changing the actual file. **Except `version` and `auth_req` due to security consideration.**
## ❓ How to update the dashboard?
```shell
cd wireguard-dashboard
sudo sh wgd.sh update # Perform update
sudo sh wgd.sh start # Start dashboard
```
## 🔍 Screenshot
![Index Image](https://github.com/donaldzou/Wireguard-Dashboard/raw/main/src/static/index.png)
<p align=center>Index Page</p>
![Signin Image](https://github.com/donaldzou/Wireguard-Dashboard/raw/main/src/static/signin.png)
<p align=center>Signin Page</p>
![Configuration Image](https://github.com/donaldzou/Wireguard-Dashboard/raw/main/src/static/configuration.png)
<p align=center>Configuration Page</p>
![Settings Image](https://github.com/donaldzou/Wireguard-Dashboard/raw/main/src/static/settings.png)
<p align=center>Settings Page</p>
## 🛒 Dependencies
- CSS/JS
- [Bootstrap](https://getbootstrap.com/docs/4.6/getting-started/introduction/) `v4.6.0`
- [Bootstrap Icon](https://icons.getbootstrap.com) `v1.4.0`
- [jQuery](https://jquery.com) `v3.5.1`
- Python
- [Flask](https://pypi.org/project/Flask/) `v1.1.2`
- [TinyDB](https://pypi.org/project/tinydb/) `v4.3.0`
- [ifcfg](https://pypi.org/project/ifcfg/) `v0.21`
- [icmplib](https://pypi.org/project/icmplib/) `v2.1.1`
## Contributors ✨
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://github.com/antonioag95"><img src="https://avatars.githubusercontent.com/u/30556866?v=4?s=100" width="100px;" alt=""/><br /><sub><b>antonioag95</b></sub></a><br /><a href="https://github.com/donaldzou/wireguard-dashboard/commits?author=antonioag95" title="Tests">⚠️</a> <a href="https://github.com/donaldzou/wireguard-dashboard/commits?author=antonioag95" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/tonjo"><img src="https://avatars.githubusercontent.com/u/4726289?v=4?s=100" width="100px;" alt=""/><br /><sub><b>tonjo</b></sub></a><br /><a href="https://github.com/donaldzou/wireguard-dashboard/commits?author=tonjo" title="Code">💻</a></td>
</tr>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
+10
View File
@@ -0,0 +1,10 @@
# Security Policy
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
| 5.1.x | :white_check_mark: |
| 5.0.x | :x: |
| 4.0.x | :white_check_mark: |
| < 4.0 | :x: |
+109
View File
@@ -0,0 +1,109 @@
# WGDashboard Docker Explanation:
Author: DaanSelen<br>
This document delves into how the WGDashboard Docker container has been built.<br>
Of course there are two stages, one before run-time and one at/after run-time.<br>
The `Dockerfile` describes how the container image is made, and the `entrypoint.sh` is executed after running the container. <br>
In this example, WireGuard is integrated into the container itself, so it should be a run-and-go/out-of-the-box.<br>
For more details on the source-code specific to this Docker image, refer to the source files, they have lots of comments.
I have tried to embed some new features such as `isolate` and interface startup on container-start (through `enable`). I hope you enjoy!
<img src="https://raw.githubusercontent.com/donaldzou/WGDashboard/main/src/static/img/logo.png" alt="WG-Dashboard Logo" title="WG-Dashboard Logo" width="150" height="150" />
## Getting the container running:
To get the container running you either pull the image from the repository, `donaldzou/wgdashboard:latest`.<br>
From there either use the environment variables describe below as parameters or use the Docker Compose file: `compose.yaml`.<br>
Be careful, the default generated WireGuard configuration file uses port 51820/udp. So use this port if you want to use it out of the box.<br>
Otherwise edit the configuration file in `/etc/wireguard/wg0.conf`.
An example of a simple command to get the container running is show below:<br>
```shell
docker run -d \
--name wgdashboard \
--restart unless-stopped \
-e enable=wg0 \
-e isolate=wg0 \
-p 10086:10086/tcp \
-p 51820:51820/udp \
--cap-add NET_ADMIN \
donaldzou/wgdashboard:latest
```
<br>
If you want to use Compose instead of a raw Docker command, refer to the example in the `compose.yaml` or the one pasted below:
<br><br>
```yaml
services:
wgdashboard:
image: donaldzou/wgdashboard:latest
restart: unless-stopped
container_name: wgdashboard
environment:
#- tz=
#- global_dns=
#- enable=
#- isolate=
#- public_ip=
ports:
- 10086:10086/tcp
- 51820:51820/udp
volumes:
- conf:/etc/wireguard
- data:/data
cap_add:
- NET_ADMIN
volumes:
conf:
data:
```
If you want to customize the yaml, make sure the core stays the same, but for example volume PATHs (ON THE HOST) can be freely changed.<br>
This setup is just generic and will use the Docker volumes.
## Updating the container:
Updating is right now in Alpha stage. I have got it to work, testing methods.
## Working with the container and environment variables:
Once the container is running, the installation process is essentially the same as running it on bare-metal.<br>
So go to the assign TCP port in this case HTTP, like the default 10086 one in the example and log into the WEB-GUI.<br>
| Environment variable | Accepted arguments | Default value | Example value | Verbose |
| -------------- | ------- | ------- | ------- | ------- |
| tz | Europe/Amsterdam or any confirming timezone notation. | `Europe/Amsterdam` | `America/New_York` | Sets the timezone of the Docker container. This is to timesync the container to any other processes which would need it. |
| global_dns | Any IPv4 address, such as my personal recommendation: 9.9.9.9 (QUAD9). | `1.1.1.1` | `8.8.8.8` or any IP-Address that resolves DNS-names, and of course is reachable | Set the default DNS given to clients once they connect to the WireGuard tunnel, and for new peers, set to Cloudflare DNS for reliability.
| enable | Anything, preferably an existing WireGuard interface name. | `none` | `wg0,wg2,wg13` | Enables or disables the starting of the WireGuard interface on container 'boot-up'.
| isolate | Anything, preferably an existing WireGuard interface name. | `none` | `wg1,wg0` | The Wireguard interface itself IS able to reach the peers (Done through the `iptables` package).
| public_ip | Any IPv4 (public recommended) address, such as the one returned by default | Default uses the return of `curl ifconfig.me` | `89.20.83.118` | To reach your VPN from outside your own network, you need WG-Dashboard to know what your public IP-address is, otherwise it will generate faulty config files for clients. This happends because it is inside a Docker/Kubernetes container. In or outside of NAT is not relevant as long as the given IP-address is reachable from the internet or the target network.
## Be careful with:
When you are going to work with multiple WireGuard interfaces, you need to also open them up to the Docker host. This done by either adding the port mappings like: `51821:51821/udp` in the Docker Compose file, or to open a range like: `51820-51830:51820-51830/udp`<br>
The latter opens up UDP ports from 51820 to 51830, so all ports in between as well! Be careful, it is good security practise to open only needed ports!
## Building the image yourself:
To build the image yourself, you need to do a couple things:<br>
1. Clone the Github repository containing the source code of WGDashboard including the docker directory. For example do: `git clone https://github.com/donaldzou/WGDashboard.git`
1. Navigate into the cloned repository.
1. (Make sure you have Docker correctly installed, if not: [Click here](https://docs.docker.com/engine/install/)) and run: `docker build . -t <Image name>:<Image tag>` as an example: `docker build . -t dselen/wgdashboard:latest`.<br>
This will make Docker compile the image from the resources in the directory you mention, in this case the source/root one. Let it compile, it takes only a couple seconds with a minute at most.
1. If all went well, see your image with `docker images`. Example below:
```shell
dselen@dev-mach:~/development/WGDashboard/docker$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dselen/wgdashboard latest c96fd96ee3b3 42 minutes ago 314MB
```
## Closing remarks:
For feedback please submit an issue to the repository. Or message dselen@nerthus.nl.
+23
View File
@@ -0,0 +1,23 @@
services:
wireguard-dashboard:
image: donaldzou/wgdashboard:latest
restart: unless-stopped
container_name: wgdashboard
#environment:
#- tz= # <--- Set container timezone, default: Europe/Amsterdam.
#- global_dns= # <--- Set global DNS address, default: 1.1.1.1.
#- isolate= # <--- Set the interfaces that will disallow peer communication, default: 'none'.
#- public_ip= # <--- Set public IP to ensure the correct one is chosen, defaulting to the IP give by ifconfig.me.
#- wgd_port= # <--- Set the port WGDashboard will use for its web-server.
ports:
- 10086:10086/tcp
- 51820:51820/udp
volumes:
- conf:/etc/wireguard
- data:/data
cap_add:
- NET_ADMIN
volumes:
conf:
data:
+160
View File
@@ -0,0 +1,160 @@
#!/bin/bash
# Path to the configuration file (exists because of previous function).
config_file="/data/wg-dashboard.ini"
trap 'stop_service' SIGTERM
stop_service() {
echo "[WGDashboard] Stopping WGDashboard..."
bash ./wgd.sh stop
exit 0
}
echo "------------------------- START ----------------------------"
echo "Starting the WireGuard Dashboard Docker container."
ensure_installation() {
# When using a custom directory to store the files, this part moves over and makes sure the installation continues.
echo "Quick-installing..."
chmod +x "${WGDASH}"/src/wgd.sh
cd "${WGDASH}"/src || exit
echo "Removing clear command from wgd.sh for better Docker logging."
sed -i '/clear/d' ./wgd.sh
if [ ! -d "/data/db" ]; then
echo "Creating database dir"
mkdir /data/db
fi
if [ ! -d "${WGDASH}/src/db" ]; then
ln -s /data/db "${WGDASH}/src/db"
fi
if [ ! -f "${config_file}" ]; then
echo "Creating wg-dashboard.ini file"
touch "${config_file}"
fi
if [ ! -f "${WGDASH}/src/wg-dashboard.ini" ]; then
ln -s "${config_file}" "${WGDASH}/src/wg-dashboard.ini"
fi
python3 -m venv "${WGDASH}"/src/venv
. "${WGDASH}/src/venv/bin/activate"
echo "Moving PIP dependency from ephemerality to runtime environment: psutil"
mv /usr/lib/python3.12/site-packages/psutil* "${WGDASH}"/src/venv/lib/python3.12/site-packages
echo "Moving PIP dependency from ephemerality to runtime environment: bcrypt"
mv /usr/lib/python3.12/site-packages/bcrypt* "${WGDASH}"/src/venv/lib/python3.12/site-packages
./wgd.sh install
echo "Looks like the installation succeeded. Moving on."
# This first step is to ensure the wg0.conf file exists, and if not, then its copied over from the ephemeral container storage.
# This is done so WGDashboard it works out of the box
if [ ! -f "/etc/wireguard/wg0.conf" ]; then
echo "Standard wg0 Configuration file not found, grabbing template."
cp -a "/configs/wg0.conf.template" "/etc/wireguard/wg0.conf"
echo "Setting a secure private key." # SORRY 4 BE4 - Daan
local privateKey
privateKey=$(wg genkey)
sed -i "s|^PrivateKey *=.*$|PrivateKey = ${privateKey}|g" /etc/wireguard/wg0.conf
echo "Done setting template."
else
echo "Existing wg0 configuration file found, using that."
fi
}
set_envvars() {
printf "\n------------- SETTING ENVIRONMENT VARIABLES ----------------\n"
# Check if the file is empty
if [ ! -s "${config_file}" ]; then
echo "Config file is empty. Creating [Peers] section."
# Create [Peers] section with initial values
{
echo "[Peers]"
echo "peer_global_dns = ${global_dns}"
echo "remote_endpoint = ${public_ip}"
echo -e "\n[Server]"
echo "app_port = ${wgd_port}"
} > "${config_file}"
else
echo "Config file is not empty, using pre-existing."
fi
echo "Verifying current variables..."
# Check and update the DNS if it has changed
current_dns=$(grep "peer_global_dns = " "${config_file}" | awk '{print $NF}')
if [ "${global_dns}" == "$current_dns" ]; then
echo "DNS is set correctly, moving on."
else
echo "Changing default DNS..."
sed -i "s/^peer_global_dns = .*/peer_global_dns = ${global_dns}/" "${config_file}"
fi
current_public_ip=$(grep "remote_endpoint = " "${config_file}" | awk '{print $NF}')
if [ "${public_ip}" == "" ]; then
default_ip=$(curl -s ifconfig.me)
echo "Trying to fetch the Public-IP using ifconfig.me: ${default_ip}"
sed -i "s/^remote_endpoint = .*/remote_endpoint = ${default_ip}/" "${config_file}"
elif [ "${current_public_ip}" != "${public_ip}" ]; then
sed -i "s/^remote_endpoint = .*/remote_endpoint = ${public_ip}/" "${config_file}"
else
echo "Public-IP is correct, moving on."
fi
current_wgd_port=$(grep "app_port = " "${config_file}" | awk '{print $NF}')
if [ "${current_wgd_port}" == "${wgd_port}" ]; then
echo "Current WGD port is set correctly, moving on."
else
echo "Changing default WGD port..."
sed -i "s/^app_port = .*/app_port = ${wgd_port}/" "${config_file}"
fi
}
# === CORE SERVICES ===
start_core() {
printf "\n---------------------- STARTING CORE -----------------------\n"
echo "Activating Python venv and executing the WireGuard Dashboard service."
bash ./wgd.sh start
}
ensure_blocking() {
sleep 1s
echo -e "\nEnsuring container continuation."
# Find and tail the latest error and access logs if they exist
local logdir="${WGDASH}/src/log"
latestErrLog=$(find "$logdir" -name "error_*.log" -type f -print | sort -r | head -n 1)
# Only tail the logs if they are found
if [ -n "$latestErrLog" ]; then
tail -f "$latestErrLog" &
wait $!
else
echo "No log files found to tail. Something went wrong, exiting..."
fi
}
# Execute functions for the WireGuard Dashboard services, then set the environment variables
ensure_installation
set_envvars
start_core
ensure_blocking
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

+1369
View File
File diff suppressed because it is too large Load Diff
+7
View File
@@ -0,0 +1,7 @@
{
"dependencies": {
"marked": "^15.0.7",
"openai": "^4.89.0",
"pinia-plugin-persistedstate": "^4.2.0"
}
}
+6
View File
@@ -0,0 +1,6 @@
version: "1.0"
linter: jetbrains/qodana-python:2024.3
profile:
name: qodana.recommended
include:
- name: CheckDependencyLicenses
+76
View File
@@ -0,0 +1,76 @@
import re, ipaddress
import subprocess
def RegexMatch(regex, text) -> bool:
"""
Regex Match
@param regex: Regex patter
@param text: Text to match
@return: Boolean indicate if the text match the regex pattern
"""
pattern = re.compile(regex)
return pattern.search(text) is not None
def GetRemoteEndpoint() -> str:
"""
Using socket to determine default interface IP address. Thanks, @NOXICS
@return:
"""
import socket
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
s.connect(("1.1.1.1", 80)) # Connecting to a public IP
wgd_remote_endpoint = s.getsockname()[0]
return str(wgd_remote_endpoint)
def StringToBoolean(value: str):
"""
Convert string boolean to boolean
@param value: Boolean value in string came from Configuration file
@return: Boolean value
"""
return (value.strip().replace(" ", "").lower() in
("yes", "true", "t", "1", 1))
def ValidateIPAddressesWithRange(ips: str) -> bool:
s = ips.replace(" ", "").split(",")
for ip in s:
try:
ipaddress.ip_network(ip)
except ValueError as e:
return False
return True
def ValidateIPAddresses(ips) -> bool:
s = ips.replace(" ", "").split(",")
for ip in s:
try:
ipaddress.ip_address(ip)
except ValueError as e:
return False
return True
def ValidateDNSAddress(addresses) -> tuple[bool, str]:
s = addresses.replace(" ", "").split(",")
for address in s:
if not ValidateIPAddresses(address) and not RegexMatch(
r"(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z][a-z]{0,61}[a-z]", address):
return False, f"{address} does not appear to be an valid DNS address"
return True, ""
def GenerateWireguardPublicKey(privateKey: str) -> tuple[bool, str] | tuple[bool, None]:
try:
publicKey = subprocess.check_output(f"wg pubkey", input=privateKey.encode(), shell=True,
stderr=subprocess.STDOUT)
return True, publicKey.decode().strip('\n')
except subprocess.CalledProcessError:
return False, None
def GenerateWireguardPrivateKey() -> tuple[bool, str] | tuple[bool, None]:
try:
publicKey = subprocess.check_output(f"wg genkey", shell=True,
stderr=subprocess.STDOUT)
return True, publicKey.decode().strip('\n')
except subprocess.CalledProcessError:
return False, None
+4
View File
@@ -0,0 +1,4 @@
authenticator = standalone
noninteractive = true
agree-tos = true
rsa-key-size = 2048
+3134 -594
View File
File diff suppressed because it is too large Load Diff
-1
View File
@@ -1 +0,0 @@
You can delete this later ;)
-34
View File
@@ -1,34 +0,0 @@
[Interface]
Address = 10.200.200.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = 8DsSMli3okgUx5frKbFQ0fMW5ZMyqyxOdOW7+g21L18=
[Peer]
#Name = 10
PublicKey = Hw2sISygeuT4eQyubDdP0CA2RJHYcpHhBOnIn6riEA0=
AllowedIPs = 10.200.200.9/32, 10.200.200.2/32
Endpoint = 142.114.220.189:58403
[Peer]
PublicKey = 0pCjuGUyXIxTmCZCoFeVtMOgZFVkU9WPGilJxLpYVAI=
AllowedIPs = 10.200.200.3/32
Endpoint = 76.67.102.20:55349
[Peer]
PublicKey = sJrgj14BfToasB5EhQfUjw2xTj3FoU/lSca9bDx+2Ww=
AllowedIPs = 10.200.200.4/32
Endpoint = 175.0.140.3:59637
[Peer]
PublicKey = IxM4gsOWugRtQ0WmFnaAYUCVquTsSqxHiE7oqisKsRQ=
AllowedIPs = 10.200.200.5/32
Endpoint = 180.152.230.148:61618
[Peer]
PublicKey = TSsTB1NPTOHfqNkcNZbJQiz+XcJ32AudypDwa5ItmBM=
AllowedIPs = 10.200.200.6/32
Endpoint = 118.250.38.191:51820
+26
View File
@@ -0,0 +1,26 @@
import os.path
import dashboard, configparser
from datetime import datetime
global sqldb, cursor, DashboardConfig, WireguardConfigurations, AllPeerJobs, JobLogger
app_host, app_port = dashboard.gunicornConfig()
date = datetime.today().strftime('%Y_%m_%d_%H_%M_%S')
def post_worker_init(worker):
dashboard.startThreads()
worker_class = 'gthread'
workers = 1
threads = 1
bind = f"{app_host}:{app_port}"
daemon = True
pidfile = './gunicorn.pid'
wsgi_app = "dashboard:app"
accesslog = f"./log/access_{date}.log"
log_level = "debug"
capture_output = True
errorlog = f"./log/error_{date}.log"
pythonpath = "., ./modules"
print(f"[Gunicorn] WGDashboard w/ Gunicorn will be running on {bind}", flush=True)
print(f"[Gunicorn] Access log file is at {accesslog}", flush=True)
print(f"[Gunicorn] Error log file is at {errorlog}", flush=True)
+35
View File
@@ -0,0 +1,35 @@
"""
Dashboard Logger Class
"""
import sqlite3, os, uuid
class DashboardLogger:
def __init__(self, CONFIGURATION_PATH):
self.loggerdb = sqlite3.connect(os.path.join(CONFIGURATION_PATH, 'db', 'wgdashboard_log.db'),
isolation_level=None,
check_same_thread=False)
self.loggerdb.row_factory = sqlite3.Row
self.__createLogDatabase()
self.log(Message="WGDashboard started")
def __createLogDatabase(self):
with self.loggerdb:
loggerdbCursor = self.loggerdb.cursor()
existingTable = loggerdbCursor.execute("SELECT name from sqlite_master where type='table'").fetchall()
existingTable = [t['name'] for t in existingTable]
if "DashboardLog" not in existingTable:
loggerdbCursor.execute(
"CREATE TABLE DashboardLog (LogID VARCHAR NOT NULL, LogDate DATETIME DEFAULT (strftime('%Y-%m-%d %H:%M:%S','now', 'localtime')), URL VARCHAR, IP VARCHAR, Status VARCHAR, Message VARCHAR, PRIMARY KEY (LogID))")
if self.loggerdb.in_transaction:
self.loggerdb.commit()
def log(self, URL: str = "", IP: str = "", Status: str = "true", Message: str = "") -> bool:
try:
loggerdbCursor = self.loggerdb.cursor()
loggerdbCursor.execute(
"INSERT INTO DashboardLog (LogID, URL, IP, Status, Message) VALUES (?, ?, ?, ?, ?);", (str(uuid.uuid4()), URL, IP, Status, Message,))
loggerdbCursor.close()
self.loggerdb.commit()
return True
except Exception as e:
print(f"[WGDashboard] Access Log Error: {str(e)}")
return False
+70
View File
@@ -0,0 +1,70 @@
import os.path
import smtplib
from email import encoders
from email.header import Header
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import formataddr
class EmailSender:
def __init__(self, DashboardConfig):
self.smtp = None
self.DashboardConfig = DashboardConfig
if not os.path.exists('../attachments'):
os.mkdir('../attachments')
def Server(self):
return self.DashboardConfig.GetConfig("Email", "server")[1]
def Port(self):
return self.DashboardConfig.GetConfig("Email", "port")[1]
def Encryption(self):
return self.DashboardConfig.GetConfig("Email", "encryption")[1]
def Username(self):
return self.DashboardConfig.GetConfig("Email", "username")[1]
def Password(self):
return self.DashboardConfig.GetConfig("Email", "email_password")[1]
def SendFrom(self):
return self.DashboardConfig.GetConfig("Email", "send_from")[1]
def ready(self):
print(self.Server())
return len(self.Server()) > 0 and len(self.Port()) > 0 and len(self.Encryption()) > 0 and len(self.Username()) > 0 and len(self.Password()) > 0
def send(self, receiver, subject, body, includeAttachment = False, attachmentName = ""):
if self.ready():
try:
self.smtp = smtplib.SMTP(self.Server(), port=int(self.Port()))
self.smtp.ehlo()
if self.Encryption() == "STARTTLS":
self.smtp.starttls()
self.smtp.login(self.Username(), self.Password())
message = MIMEMultipart()
message['Subject'] = subject
message['From'] = formataddr((Header(self.SendFrom()).encode(), self.Username()))
message["To"] = receiver
message.attach(MIMEText(body, "plain"))
if includeAttachment and len(attachmentName) > 0:
attachmentPath = os.path.join('./attachments', attachmentName)
if os.path.exists(attachmentPath):
attachment = MIMEBase("application", "octet-stream")
with open(os.path.join('./attachments', attachmentName), 'rb') as f:
attachment.set_payload(f.read())
encoders.encode_base64(attachment)
attachment.add_header("Content-Disposition", f"attachment; filename= {attachmentName}",)
message.attach(attachment)
else:
self.smtp.close()
return False, "Attachment does not exist"
self.smtp.sendmail(self.Username(), receiver, message.as_string())
self.smtp.close()
return True, None
except Exception as e:
return False, f"Send failed | Reason: {e}"
return False, "SMTP not configured"
+22
View File
@@ -0,0 +1,22 @@
"""
Log Class
"""
class Log:
def __init__(self, LogID: str, JobID: str, LogDate: str, Status: str, Message: str):
self.LogID = LogID
self.JobID = JobID
self.LogDate = LogDate
self.Status = Status
self.Message = Message
def toJson(self):
return {
"LogID": self.LogID,
"JobID": self.JobID,
"LogDate": self.LogDate,
"Status": self.Status,
"Message": self.Message
}
def __dict__(self):
return self.toJson()
+32
View File
@@ -0,0 +1,32 @@
"""
Peer Job
"""
from datetime import datetime
class PeerJob:
def __init__(self, JobID: str, Configuration: str, Peer: str,
Field: str, Operator: str, Value: str, CreationDate: datetime, ExpireDate: datetime, Action: str):
self.Action = Action
self.ExpireDate = ExpireDate
self.CreationDate = CreationDate
self.Value = Value
self.Operator = Operator
self.Field = Field
self.Configuration = Configuration
self.Peer = Peer
self.JobID = JobID
def toJson(self):
return {
"JobID": self.JobID,
"Configuration": self.Configuration,
"Peer": self.Peer,
"Field": self.Field,
"Operator": self.Operator,
"Value": self.Value,
"CreationDate": self.CreationDate,
"ExpireDate": self.ExpireDate,
"Action": self.Action
}
def __dict__(self):
return self.toJson()
+53
View File
@@ -0,0 +1,53 @@
"""
Peer Job Logger
"""
import sqlite3, os, uuid
from .Log import Log
class PeerJobLogger:
def __init__(self, CONFIGURATION_PATH, AllPeerJobs):
self.loggerdb = sqlite3.connect(os.path.join(CONFIGURATION_PATH, 'db', 'wgdashboard_log.db'),
check_same_thread=False)
self.loggerdb.row_factory = sqlite3.Row
self.logs: list[Log] = []
self.__createLogDatabase()
self.AllPeerJobs = AllPeerJobs
def __createLogDatabase(self):
with self.loggerdb:
loggerdbCursor = self.loggerdb.cursor()
existingTable = loggerdbCursor.execute("SELECT name from sqlite_master where type='table'").fetchall()
existingTable = [t['name'] for t in existingTable]
if "JobLog" not in existingTable:
loggerdbCursor.execute("CREATE TABLE JobLog (LogID VARCHAR NOT NULL, JobID NOT NULL, LogDate DATETIME DEFAULT (strftime('%Y-%m-%d %H:%M:%S','now', 'localtime')), Status VARCHAR NOT NULL, Message VARCHAR, PRIMARY KEY (LogID))")
if self.loggerdb.in_transaction:
self.loggerdb.commit()
def log(self, JobID: str, Status: bool = True, Message: str = "") -> bool:
try:
with self.loggerdb:
loggerdbCursor = self.loggerdb.cursor()
loggerdbCursor.execute(f"INSERT INTO JobLog (LogID, JobID, Status, Message) VALUES (?, ?, ?, ?)",
(str(uuid.uuid4()), JobID, Status, Message,))
if self.loggerdb.in_transaction:
self.loggerdb.commit()
except Exception as e:
print(f"[WGDashboard] Peer Job Log Error: {str(e)}")
return False
return True
def getLogs(self, all: bool = False, configName = None) -> list[Log]:
logs: list[Log] = []
try:
allJobs = self.AllPeerJobs.getAllJobs(configName)
allJobsID = ", ".join([f"'{x.JobID}'" for x in allJobs])
with self.loggerdb:
loggerdbCursor = self.loggerdb.cursor()
table = loggerdbCursor.execute(f"SELECT * FROM JobLog WHERE JobID IN ({allJobsID}) ORDER BY LogDate DESC").fetchall()
self.logs.clear()
for l in table:
logs.append(
Log(l["LogID"], l["JobID"], l["LogDate"], l["Status"], l["Message"]))
except Exception as e:
return logs
return logs
+135
View File
@@ -0,0 +1,135 @@
import psutil
class SystemStatus:
def __init__(self):
self.CPU = CPU()
self.MemoryVirtual = Memory('virtual')
self.MemorySwap = Memory('swap')
self.Disks = Disks()
self.NetworkInterfaces = NetworkInterfaces()
self.Processes = Processes()
def toJson(self):
return {
"CPU": self.CPU,
"Memory": {
"VirtualMemory": self.MemoryVirtual,
"SwapMemory": self.MemorySwap
},
"Disks": self.Disks,
"NetworkInterfaces": self.NetworkInterfaces,
"Processes": self.Processes
}
class CPU:
def __init__(self):
self.cpu_percent: float = 0
self.cpu_percent_per_cpu: list[float] = []
def getData(self):
try:
self.cpu_percent_per_cpu = psutil.cpu_percent(interval=0.5, percpu=True)
self.cpu_percent = psutil.cpu_percent(interval=0.5)
except Exception as e:
pass
def toJson(self):
self.getData()
return self.__dict__
class Memory:
def __init__(self, memoryType: str):
self.__memoryType__ = memoryType
self.total = 0
self.available = 0
self.percent = 0
def getData(self):
try:
if self.__memoryType__ == "virtual":
memory = psutil.virtual_memory()
else:
memory = psutil.swap_memory()
self.total = memory.total
self.available = memory.available
self.percent = memory.percent
except Exception as e:
pass
def toJson(self):
self.getData()
return self.__dict__
class Disks:
def __init__(self):
self.disks : list[Disk] = []
def getData(self):
try:
self.disks = list(map(lambda x : Disk(x.mountpoint), psutil.disk_partitions()))
except Exception as e:
pass
def toJson(self):
self.getData()
return self.disks
class Disk:
def __init__(self, mountPoint: str):
self.total = 0
self.used = 0
self.free = 0
self.percent = 0
self.mountPoint = mountPoint
def getData(self):
try:
disk = psutil.disk_usage(self.mountPoint)
self.total = disk.total
self.free = disk.free
self.used = disk.used
self.percent = disk.percent
except Exception as e:
pass
def toJson(self):
self.getData()
return self.__dict__
class NetworkInterfaces:
def __init__(self):
self.interfaces = {}
def getData(self):
try:
network = psutil.net_io_counters(pernic=True, nowrap=True)
for i in network.keys():
self.interfaces[i] = network[i]._asdict()
except Exception as e:
pass
def toJson(self):
self.getData()
return self.interfaces
class Process:
def __init__(self, name, command, pid, percent):
self.name = name
self.command = command
self.pid = pid
self.percent = percent
def toJson(self):
return self.__dict__
class Processes:
def __init__(self):
self.CPU_Top_10_Processes: list[Process] = []
self.Memory_Top_10_Processes: list[Process] = []
def getData(self):
while True:
try:
processes = list(psutil.process_iter())
self.CPU_Top_10_Processes = sorted(
list(map(lambda x : Process(x.name(), " ".join(x.cmdline()), x.pid, x.cpu_percent()), processes)),
key=lambda x : x.percent, reverse=True)[:20]
self.Memory_Top_10_Processes = sorted(
list(map(lambda x : Process(x.name(), " ".join(x.cmdline()), x.pid, x.memory_percent()), processes)),
key=lambda x : x.percent, reverse=True)[:20]
break
except Exception as e:
break
def toJson(self):
self.getData()
return {
"cpu_top_10": self.CPU_Top_10_Processes,
"memory_top_10": self.Memory_Top_10_Processes
}
+10 -4
View File
@@ -1,4 +1,10 @@
Flask==1.1.2 bcrypt
tinydb==4.3.0 ifcfg
ifcfg==0.21 psutil
icmplib==2.1.1 pyotp
Flask
flask-cors
icmplib
gunicorn
requests
tcconfig
BIN
View File
Binary file not shown.
+30
View File
@@ -0,0 +1,30 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
.DS_Store
dist-ssr
coverage
*.local
/cypress/videos/
/cypress/screenshots/
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
*.tsbuildinfo
.vite/*
+27
View File
@@ -0,0 +1,27 @@
#!/bin/bash
echo "Running vite build..."
if vite build; then
echo "Vite build successful."
else
echo "Vite build failed. Exiting."
exit 1
fi
echo "Checking for changes to commit..."
if git diff-index --quiet HEAD --; then
if git commit -a; then
echo "Git commit successful."
else
echo "Git commit failed. Exiting."
exit 1
fi
else
echo "No changes to commit. Skipping commit."
fi
echo "Pushing changes to remote..."
if git push; then
echo "Git push successful."
else
echo "Git push failed. Exiting."
exit 1
fi
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{_ as r,c as i,d as o,w as e,k as l,a as t,j as _,i as a,l as d,S as u}from"./index-CUmHRwBw.js";const m={name:"configuration"},p={class:"mt-md-5 mt-3 text-body"};function f(k,x,h,w,$,v){const n=l("RouterView");return t(),i("div",p,[o(n,null,{default:e(({Component:s,route:c})=>[o(_,{name:"fade2",mode:"out-in"},{default:e(()=>[(t(),a(u,null,{default:e(()=>[(t(),a(d(s),{key:c.path}))]),_:2},1024))]),_:2},1024)]),_:1})])}const B=r(m,[["render",f]]);export{B as default};
@@ -0,0 +1 @@
.fade-enter-active[data-v-6451623a]{transition-delay:var(--d75b06ae)!important}.progress-bar[data-v-c7f6d1a1]{width:0;transition:all 1s cubic-bezier(.42,0,.22,1)}.filter a[data-v-ea61b607]{text-decoration:none}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.agentMessage[data-v-8635cf47]{white-space:break-spaces;max-width:80%;display:flex;flex-direction:column;word-wrap:break-word}.text-bg-secondary[data-v-8635cf47]{background-color:RGBA(var(--bs-secondary-rgb),.7)!important}.text-bg-primary[data-v-8635cf47]{background-color:RGBA(var(--bs-primary-rgb),.7)!important}.agentContainer[data-v-694cfad1]{--agentHeight: 100vh;position:absolute;z-index:9999;top:0;left:100%;width:450px;box-shadow:0 10px 30px #0000004d;backdrop-filter:blur(8px);background:linear-gradient(var(--degree),#009dff52 var(--distance2),#ff4a0052 100%)}.agentContainer.enabled[data-v-694cfad1]{height:calc(var(--agentHeight) - 1rem)}@media screen and (max-width: 768px){.agentContainer[data-v-694cfad1]{--agentHeight: 100vh !important;top:0;left:0;max-height:calc(var(--agentHeight) - 58px - 1rem);width:calc(100% - 1rem)}}.agentChatroomBody[data-v-694cfad1]{flex:1 1 auto;overflow-y:auto;max-height:calc(var(--agentHeight) - 70px - 244px)}@media screen and (max-width: 768px){.navbar-container[data-v-58e71749]{position:absolute!important;z-index:1000;animation-duration:.4s;animation-fill-mode:both;display:none;animation-timing-function:cubic-bezier(.82,.58,.17,.9)}.navbar-container.active[data-v-58e71749]{animation-direction:normal;display:block!important;animation-name:zoomInFade-58e71749}}.navbar-container[data-v-58e71749]{height:100vh;position:relative}@supports (height: 100dvh){@media screen and (max-width: 768px){.navbar-container[data-v-58e71749]{height:calc(100dvh - 58px)}}}@keyframes zoomInFade-58e71749{0%{opacity:0;transform:translateY(60px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0px)}}.slideIn-enter-active[data-v-58e71749],.slideIn-leave-active[data-v-58e71749]{transition:all .3s cubic-bezier(.82,.58,.17,1)}.slideIn-enter-from[data-v-58e71749],.slideIn-leave-to[data-v-58e71749]{transform:translateY(30px);filter:blur(3px);opacity:0}main[data-v-0c6a5068]{height:100vh}@supports (height: 100dvh){@media screen and (max-width: 768px){main[data-v-0c6a5068]{height:calc(100dvh - 58px)}}}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
function f(e){return e.includes(":")?6:e.includes(".")?4:0}function b(e){const i=f(e);if(!i)throw new Error(`Invalid IP address: ${e}`);let n=0n,o=0n;const r=Object.create(null);if(i===4)for(const s of e.split(".").map(BigInt).reverse())n+=s*2n**o,o+=8n;else{if(e.includes(".")&&(r.ipv4mapped=!0,e=e.split(":").map(t=>{if(t.includes(".")){const[c,l,d,a]=t.split(".").map($=>Number($).toString(16).padStart(2,"0"));return`${c}${l}:${d}${a}`}else return t}).join(":")),e.includes("%")){let t;[,e,t]=/(.+)%(.+)/.exec(e)||[],r.scopeid=t}const s=e.split(":"),u=s.indexOf("");if(u!==-1)for(;s.length<8;)s.splice(u,0,"");for(const t of s.map(c=>BigInt(parseInt(c||"0",16))).reverse())n+=t*2n**o,o+=16n}return r.number=n,r.version=i,r}const p={4:32,6:128},I=e=>e.includes("/")?f(e):0;function m(e){const i=I(e),n=Object.create(null);if(i)n.cidr=e,n.version=i;else{const a=f(e);if(a)n.cidr=`${e}/${p[a]}`,n.version=a;else throw new Error(`Network is not a CIDR or IP: ${e}`)}const[o,r]=n.cidr.split("/");if(!/^[0-9]+$/.test(r))throw new Error(`Network is not a CIDR or IP: ${e}`);n.prefix=r,n.single=r===String(p[n.version]);const{number:s,version:u}=b(o),t=p[u],c=s.toString(2).padStart(t,"0"),l=Number(t-r),d=c.substring(0,t-l);return n.start=BigInt(`0b${d}${"0".repeat(l)}`),n.end=BigInt(`0b${d}${"1".repeat(l)}`),n}export{m as p};
+1
View File
@@ -0,0 +1 @@
import{_ as e,G as t,a as o,c as a,t as c}from"./index-CUmHRwBw.js";const s={name:"localeText",props:{t:""},computed:{getLocaleText(){return t(this.t)}}};function n(r,p,l,_,i,x){return o(),a("span",null,c(this.getLocaleText),1)}const u=e(s,[["render",n]]);export{u as L};
+1
View File
@@ -0,0 +1 @@
import{L as l}from"./localeText-DvaqSAco.js";import{d as c}from"./dayjs.min-C3XPfvH9.js";import{_ as h,a as o,c as a,b as e,d as i,w as u,f as p,t as n,j as g,n as f,k as _}from"./index-CUmHRwBw.js";const x={name:"message",methods:{dayjs:c,hide(){this.ct(),this.message.show=!1},show(){this.timeout=setTimeout(()=>{this.message.show=!1},5e3)},ct(){clearTimeout(this.timeout)}},components:{LocaleText:l},props:{message:Object},mounted(){this.show()},data(){return{dismiss:!1,timeout:null}}},v=["id"],b={key:0,class:"d-flex"},w={class:"fw-bold d-block",style:{"text-transform":"uppercase"}},y={class:"ms-auto"},k={key:1},T={class:"card-body d-flex align-items-center gap-3"};function M(j,s,C,L,t,m){const d=_("LocaleText");return o(),a("div",{onMouseenter:s[1]||(s[1]=r=>{t.dismiss=!0,this.ct()}),onMouseleave:s[2]||(s[2]=r=>{t.dismiss=!1,this.show()}),class:"card shadow rounded-3 position-relative message ms-auto",id:this.message.id},[e("div",{class:f([{"text-bg-danger":this.message.type==="danger","text-bg-success":this.message.type==="success","text-bg-warning":this.message.type==="warning"},"card-header pos"])},[i(g,{name:"zoom",mode:"out-in"},{default:u(()=>[t.dismiss?(o(),a("div",k,[e("small",{onClick:s[0]||(s[0]=r=>m.hide()),class:"d-block mx-auto w-100 text-center",style:{cursor:"pointer"}},[s[3]||(s[3]=e("i",{class:"bi bi-x-lg me-2"},null,-1)),i(d,{t:"Dismiss"})])])):(o(),a("div",b,[e("small",w,[i(d,{t:"FROM "}),p(" "+n(this.message.from),1)]),e("small",y,n(m.dayjs().format("hh:mm A")),1)]))]),_:1})],2),e("div",T,[e("div",null,n(this.message.content),1)])],40,v)}const z=h(x,[["render",M],["__scopeId","data-v-94c76b54"]]);export{z as M};
+1
View File
@@ -0,0 +1 @@
.message[data-v-94c76b54]{width:100%}@media screen and (min-width: 576px){.message[data-v-94c76b54]{width:400px}}
@@ -0,0 +1 @@
.protocolBtnGroup a[data-v-b4bbbc2b]{transition:all .2s ease-in-out}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.list-move[data-v-ed72944d],.list-enter-active[data-v-ed72944d],.list-leave-active[data-v-ed72944d]{transition:all .3s ease}.list-enter-from[data-v-ed72944d],.list-leave-to[data-v-ed72944d]{opacity:0;transform:translateY(10px)}.list-leave-active[data-v-ed72944d]{position:absolute}
@@ -0,0 +1 @@
.slide-up-enter-active[data-v-b0ea2d46],.slide-up-leave-active[data-v-b0ea2d46]{transition:all .2s cubic-bezier(.42,0,.22,1)}.slide-up-enter-from[data-v-b0ea2d46],.slide-up-leave-to[data-v-b0ea2d46]{opacity:0;transform:scale(.9)}@keyframes spin-b0ea2d46{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#check[data-v-b0ea2d46]{animation:cubic-bezier(.42,0,.22,1.3) .7s spin-b0ea2d46}
@@ -0,0 +1 @@
import{_ as v,D as g,r as o,o as h,J as x,g as y,a as i,c as n,b as s,d as c,n as w,e as C,w as k,j as F}from"./index-CUmHRwBw.js";import{L as T}from"./localeText-DvaqSAco.js";import"./browser-CjSdxGTc.js";const M={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0"},S={class:"container d-flex h-100 w-100"},D={class:"m-auto modal-dialog-centered dashboardModal justify-content-center"},P={class:"card rounded-3 shadow w-100"},j={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-0"},B={class:"mb-0"},G={class:"card-body p-4 d-flex flex-column gap-3"},L={style:{height:"300px"},class:"d-flex"},N=["value"],V={key:0,class:"spinner-border m-auto",role:"status"},I={class:"d-flex"},W=["disabled"],$={key:0,class:"d-block"},q={key:1,class:"d-block",id:"check"},z={__name:"peerConfigurationFile",props:{selectedPeer:Object},emits:["close"],setup(u,{emit:p}){const m=p,f=u,r=g(),t=o(!1),l=o(""),a=o(!0);o({error:!1,message:void 0}),h(()=>{const d=x();y("/api/downloadPeer/"+d.params.id,{id:f.selectedPeer.id},e=>{e.status?(l.value=e.data.file,a.value=!1):this.dashboardStore.newMessage("Server",e.message,"danger")})});const b=async()=>{navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(l.value).then(()=>{t.value=!0,setTimeout(()=>{t.value=!1},3e3)}).catch(()=>{r.newMessage("WGDashboard","Failed to copy","danger")}):(document.querySelector("#peerConfigurationFile").select(),document.execCommand("copy")?(t.value=!0,setTimeout(()=>{t.value=!1},3e3)):r.newMessage("WGDashboard","Failed to copy","danger"))};return(d,e)=>(i(),n("div",M,[s("div",S,[s("div",D,[s("div",P,[s("div",j,[s("h4",B,[c(T,{t:"Peer Configuration File"})]),s("button",{type:"button",class:"btn-close ms-auto",onClick:e[0]||(e[0]=_=>m("close"))})]),s("div",G,[s("div",L,[s("textarea",{style:{height:"300px"},class:w(["form-control w-100 rounded-3 animate__fadeIn animate__faster animate__animated",{"d-none":a.value}]),id:"peerConfigurationFile",value:l.value},null,10,N),a.value?(i(),n("div",V,e[2]||(e[2]=[s("span",{class:"visually-hidden"},"Loading...",-1)]))):C("",!0)]),s("div",I,[s("button",{onClick:e[1]||(e[1]=_=>b()),disabled:t.value||a.value,class:"ms-auto btn bg-primary-subtle border-primary-subtle text-primary-emphasis rounded-3 position-relative"},[c(F,{name:"slide-up",mode:"out-in"},{default:k(()=>[t.value?(i(),n("span",q,e[4]||(e[4]=[s("i",{class:"bi bi-check-circle-fill"},null,-1)]))):(i(),n("span",$,e[3]||(e[3]=[s("i",{class:"bi bi-clipboard-fill"},null,-1)])))]),_:1})],8,W)])])])])])]))}},R=v(z,[["__scopeId","data-v-b0ea2d46"]]);export{R as default};
+1
View File
@@ -0,0 +1 @@
import{S as p,a as b}from"./schedulePeerJob-Rx5QXWIx.js";import{_ as h,W as u,z as m,k as i,a as o,c as a,b as e,d as r,w as _,F as v,h as f,i as J,e as x,T as g}from"./index-CUmHRwBw.js";import{L as w}from"./localeText-DvaqSAco.js";import"./vue-datepicker-CUbRHf9G.js";import"./dayjs.min-C3XPfvH9.js";const P={name:"peerJobs",setup(){return{store:u()}},props:{selectedPeer:Object},components:{LocaleText:w,SchedulePeerJob:p,ScheduleDropdown:b},data(){return{}},methods:{deleteJob(d){this.selectedPeer.jobs=this.selectedPeer.jobs.filter(t=>t.JobID!==d.JobID)},addJob(){this.selectedPeer.jobs.unshift(JSON.parse(JSON.stringify({JobID:m().toString(),Configuration:this.selectedPeer.configuration.Name,Peer:this.selectedPeer.id,Field:this.store.PeerScheduleJobs.dropdowns.Field[0].value,Operator:this.store.PeerScheduleJobs.dropdowns.Operator[0].value,Value:"",CreationDate:"",ExpireDate:"",Action:this.store.PeerScheduleJobs.dropdowns.Action[0].value})))}}},S={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},y={class:"container d-flex h-100 w-100"},$={class:"m-auto modal-dialog-centered dashboardModal"},C={class:"card rounded-3 shadow",style:{width:"700px"}},D={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-2"},k={class:"mb-0 fw-normal"},j={class:"card-body px-4 pb-4 pt-2 position-relative"},T={class:"d-flex align-items-center mb-3"},N={class:"card shadow-sm",key:"none",style:{height:"153px"}},I={class:"card-body text-muted text-center d-flex"},L={class:"m-auto"};function O(d,t,B,F,V,A){const n=i("LocaleText"),l=i("SchedulePeerJob");return o(),a("div",S,[e("div",y,[e("div",$,[e("div",C,[e("div",D,[e("h4",k,[r(n,{t:"Schedule Jobs"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:t[0]||(t[0]=s=>this.$emit("close"))})]),e("div",j,[e("div",T,[e("button",{class:"btn bg-primary-subtle border-1 border-primary-subtle text-primary-emphasis rounded-3 shadow",onClick:t[1]||(t[1]=s=>this.addJob())},[t[3]||(t[3]=e("i",{class:"bi bi-plus-lg me-2"},null,-1)),r(n,{t:"Job"})])]),r(g,{name:"schedulePeerJobTransition",tag:"div",class:"position-relative"},{default:_(()=>[(o(!0),a(v,null,f(this.selectedPeer.jobs,(s,E)=>(o(),J(l,{onRefresh:t[2]||(t[2]=c=>this.$emit("refresh")),onDelete:c=>this.deleteJob(s),dropdowns:this.store.PeerScheduleJobs.dropdowns,key:s.JobID,pjob:s},null,8,["onDelete","dropdowns","pjob"]))),128)),this.selectedPeer.jobs.length===0?(o(),a("div",N,[e("div",I,[e("h6",L,[r(n,{t:"This peer does not have any job yet."})])])])):x("",!0)]),_:1})])])])])])}const q=h(P,[["render",O],["__scopeId","data-v-5bbdd42b"]]);export{q as default};
+1
View File
@@ -0,0 +1 @@
.schedulePeerJobTransition-move[data-v-5bbdd42b],.schedulePeerJobTransition-enter-active[data-v-5bbdd42b],.schedulePeerJobTransition-leave-active[data-v-5bbdd42b]{transition:all .4s cubic-bezier(.82,.58,.17,.9)}.schedulePeerJobTransition-enter-from[data-v-5bbdd42b],.schedulePeerJobTransition-leave-to[data-v-5bbdd42b]{opacity:0;transform:scale(.9)}.schedulePeerJobTransition-leave-active[data-v-5bbdd42b]{position:absolute;width:100%}
@@ -0,0 +1 @@
import{S as _}from"./schedulePeerJob-Rx5QXWIx.js";import{_ as g,W as v,k as c,a as t,c as r,b as e,d as l,F as p,h as b,t as m,e as f,i as y}from"./index-CUmHRwBw.js";import{L as x}from"./localeText-DvaqSAco.js";import"./vue-datepicker-CUbRHf9G.js";import"./dayjs.min-C3XPfvH9.js";const J={name:"peerJobsAllModal",setup(){return{store:v()}},components:{LocaleText:x,SchedulePeerJob:_},props:{configurationPeers:Array[Object]},computed:{getAllJobs(){return this.configurationPeers.filter(a=>a.jobs.length>0)}}},k={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},w={class:"container d-flex h-100 w-100"},$={class:"m-auto modal-dialog-centered dashboardModal"},A={class:"card rounded-3 shadow",style:{width:"900px"}},L={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-2"},S={class:"mb-0 fw-normal"},C={class:"card-body px-4 pb-4 pt-2"},P={key:0,class:"accordion",id:"peerJobsLogsModalAccordion"},j={class:"accordion-header"},M=["data-bs-target"],B={key:0},N={class:"text-muted"},D=["id"],T={class:"accordion-body"},V={key:1,class:"card shadow-sm",style:{height:"153px"}},F={class:"card-body text-muted text-center d-flex"},O={class:"m-auto"};function W(a,o,E,I,R,q){const n=c("LocaleText"),u=c("SchedulePeerJob");return t(),r("div",k,[e("div",w,[e("div",$,[e("div",A,[e("div",L,[e("h4",S,[l(n,{t:"All Active Jobs"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:o[0]||(o[0]=s=>this.$emit("close"))})]),e("div",C,[e("button",{class:"btn bg-primary-subtle border-1 border-primary-subtle text-primary-emphasis rounded-3 shadow mb-2",onClick:o[1]||(o[1]=s=>this.$emit("allLogs"))},[o[4]||(o[4]=e("i",{class:"bi bi-clock me-2"},null,-1)),l(n,{t:"Logs"})]),this.getAllJobs.length>0?(t(),r("div",P,[(t(!0),r(p,null,b(this.getAllJobs,(s,d)=>(t(),r("div",{class:"accordion-item",key:s.id},[e("h2",j,[e("button",{class:"accordion-button collapsed",type:"button","data-bs-toggle":"collapse","data-bs-target":"#collapse_"+d},[e("small",null,[e("strong",null,[s.name?(t(),r("span",B,m(s.name)+" • ",1)):f("",!0),e("samp",N,m(s.id),1)])])],8,M)]),e("div",{id:"collapse_"+d,class:"accordion-collapse collapse","data-bs-parent":"#peerJobsLogsModalAccordion"},[e("div",T,[(t(!0),r(p,null,b(s.jobs,i=>(t(),y(u,{onDelete:o[2]||(o[2]=h=>this.$emit("refresh")),onRefresh:o[3]||(o[3]=h=>this.$emit("refresh")),dropdowns:this.store.PeerScheduleJobs.dropdowns,viewOnly:!0,key:i.JobID,pjob:i},null,8,["dropdowns","pjob"]))),128))])],8,D)]))),128))])):(t(),r("div",V,[e("div",F,[e("span",O,[l(n,{t:"No active job at the moment."})])])]))])])])])])}const U=g(J,[["render",W]]);export{U as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{b as r}from"./browser-CjSdxGTc.js";import{L as i}from"./localeText-DvaqSAco.js";import{_ as c,D as l,g as p,k as _,a,c as n,b as e,d as m,n as h,e as u}from"./index-CUmHRwBw.js";const f={name:"peerQRCode",components:{LocaleText:i},props:{selectedPeer:Object},setup(){return{dashboardStore:l()}},data(){return{loading:!0}},mounted(){p("/api/downloadPeer/"+this.$route.params.id,{id:this.selectedPeer.id},t=>{this.loading=!1,t.status?r.toCanvas(document.querySelector("#qrcode"),t.data.file,s=>{s&&console.error(s)}):this.dashboardStore.newMessage("Server",t.message,"danger")})}},b={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0"},g={class:"container d-flex h-100 w-100"},v={class:"m-auto modal-dialog-centered dashboardModal justify-content-center"},x={class:"card rounded-3 shadow"},C={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-0"},w={class:"mb-0"},y={class:"card-body p-4"},S={style:{width:"292px",height:"292px"},class:"d-flex"},k={key:0,class:"spinner-border m-auto",role:"status"};function L(t,s,$,q,o,B){const d=_("LocaleText");return a(),n("div",b,[e("div",g,[e("div",v,[e("div",x,[e("div",C,[e("h4",w,[m(d,{t:"QR Code"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:s[0]||(s[0]=N=>this.$emit("close"))})]),e("div",y,[e("div",S,[e("canvas",{id:"qrcode",class:h(["rounded-3 shadow animate__animated animate__fadeIn animate__faster",{"d-none":o.loading}])},null,2),o.loading?(a(),n("div",k,s[1]||(s[1]=[e("span",{class:"visually-hidden"},"Loading...",-1)]))):u("",!0)])])])])])])}const T=c(f,[["render",L]]);export{T as default};
+1
View File
@@ -0,0 +1 @@
.searchPeersContainer[data-v-b741afe7]{width:100%}
+1
View File
@@ -0,0 +1 @@
import{_ as u,q as m,G as p,r as b,W as f,a2 as h,o as g,a as v,i as y,w as _,b as e,m as x,y as w,d as S,j as B}from"./index-CUmHRwBw.js";import{L as T}from"./localeText-DvaqSAco.js";const C={class:"fixed-bottom w-100 bottom-0 z-2",style:{"z-index":"1"}},P={class:"container-fluid"},k={class:"row g-0"},L={class:"col-md-9 col-lg-10 d-flex justify-content-center py-2"},V={class:"rounded-3 p-2 border shadow searchPeersContainer bg-body-tertiary"},j={class:"d-flex gap-1 align-items-center px-2"},z=["placeholder"],D={__name:"peerSearchBar",emits:["close"],setup(G,{emit:n}){const l=m(()=>p("Search Peers..."));let t;const o=b(""),r=f(),i=()=>{t?(clearTimeout(t),t=setTimeout(()=>{r.searchString=o.value},300)):t=setTimeout(()=>{r.searchString=o.value},300)},d=n,c=h("searchBar");return g(()=>{c.value.focus()}),(M,s)=>(v(),y(B,{name:"slideUp",appear:"",type:"animation",style:{"animation-delay":"1s"}},{default:_(()=>[e("div",C,[e("div",P,[e("div",k,[s[5]||(s[5]=e("div",{class:"col-md-3 col-lg-2"},null,-1)),e("div",L,[e("div",V,[e("div",j,[s[4]||(s[4]=e("h6",{class:"mb-0 me-2"},[e("label",{for:"searchPeers"},[e("i",{class:"bi bi-search"})])],-1)),x(e("input",{ref:"searchBar",class:"flex-grow-1 form-control rounded-3 bg-secondary-subtle border-1 border-secondary-subtle",placeholder:l.value,id:"searchPeers",onKeyup:s[0]||(s[0]=a=>i()),"onUpdate:modelValue":s[1]||(s[1]=a=>o.value=a)},null,40,z),[[w,o.value]]),e("button",{onClick:s[2]||(s[2]=a=>d("close")),style:{"white-space":"nowrap"},class:"btn bg-secondary-subtle text-secondary-emphasis border-secondary-subtle rounded-3 d-flex align-items-center"},[e("span",null,[s[3]||(s[3]=e("i",{class:"bi bi-x-circle-fill me-2"},null,-1)),S(T,{t:"Done"})])])])])])])])])]),_:1}))}},W=u(D,[["__scopeId","data-v-b741afe7"]]);export{W as default};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.toggleShowKey[data-v-2166fcf9]{position:absolute;top:35px;right:12px}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.card[data-v-8cfb4d4d]{border-color:var(--bs-border-color)!important}textarea[data-v-6e705c87]:focus,input[data-v-6e705c87]:focus{box-shadow:none;border-color:var(--bs-border-color)!important}textarea[data-v-6e705c87]{padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x)}
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.pingPlaceholder[data-v-a08ce97e]{width:100%;height:79.98px}.ping-move[data-v-a08ce97e],.ping-enter-active[data-v-a08ce97e],.ping-leave-active[data-v-a08ce97e]{transition:all .4s cubic-bezier(.82,.58,.17,.9)}.ping-leave-active[data-v-a08ce97e]{position:absolute;width:100%}.ping-enter-from[data-v-a08ce97e],.ping-leave-to[data-v-a08ce97e]{opacity:0;filter:blur(3px)}
+1
View File
@@ -0,0 +1 @@
import{L as r}from"./localeText-DvaqSAco.js";import{a as t,c as n,f as i,i as s,e as a}from"./index-CUmHRwBw.js";const d={key:0,class:"badge wireguardBg rounded-3 shadow"},c={key:1,class:"badge amneziawgBg rounded-3 shadow"},u={__name:"protocolBadge",props:{protocol:String,mini:!1},setup(e){return(m,o)=>e.protocol==="wg"?(t(),n("span",d,[o[0]||(o[0]=i(" WireGuard ")),e.mini?a("",!0):(t(),s(r,{key:0,t:"Configuration"}))])):e.protocol==="awg"?(t(),n("span",c,[o[1]||(o[1]=i(" AmneziaWG ")),e.mini?a("",!0):(t(),s(r,{key:0,t:"Configuration"}))])):a("",!0)}};export{u as _};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.dropdownIcon[data-v-ccf48ac7]{transition:all .2s ease-in-out}.dropdownIcon.active[data-v-ccf48ac7]{transform:rotate(180deg)}.steps{&[data-v-324df2b1]{transition:all .3s ease-in-out;opacity:.3}&.active[data-v-324df2b1]{opacity:1}}
@@ -0,0 +1 @@
.btn.disabled[data-v-6a5aba2a]{opacity:1;background-color:#0d6efd17;border-color:transparent}[data-v-8f3f1b93]{font-size:.875rem}input[data-v-8f3f1b93]{padding:.1rem .4rem}input[data-v-8f3f1b93]:disabled{border-color:transparent;background-color:#0d6efd17;color:#0d6efd}.dp__main[data-v-8f3f1b93]{width:auto;flex-grow:1;--dp-input-padding: 2.5px 30px 2.5px 12px;--dp-border-radius: .5rem}
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.card[data-v-177407c1]{height:100%}.dashboardModal[data-v-177407c1]{height:calc(100% - 1rem)!important}@media screen and (min-height: 700px){.card[data-v-177407c1]{height:700px}}.peerBtn[data-v-177407c1]{border:var(--bs-border-width) solid var(--bs-border-color)}.peerBtn.active[data-v-177407c1]{border:var(--bs-border-width) solid var(--bs-body-color)}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
@media screen and (max-width: 992px){.apiKey-card-body{&[data-v-a76253c8]{flex-direction:column!important;align-items:start!important}div.ms-auto[data-v-a76253c8]{margin-left:0!important}div[data-v-a76253c8]{width:100%;align-items:start!important}small[data-v-a76253c8]{margin-right:auto}}}.apiKey-move[data-v-100ee9f9],.apiKey-enter-active[data-v-100ee9f9],.apiKey-leave-active[data-v-100ee9f9]{transition:all .5s ease}.apiKey-enter-from[data-v-100ee9f9],.apiKey-leave-to[data-v-100ee9f9]{opacity:0;transform:translateY(30px) scale(.9)}.apiKey-leave-active[data-v-100ee9f9]{position:absolute;width:100%}.dropdown-menu[data-v-4e34593e]{width:100%}.list-group{&[data-v-4aa2aed9]:first-child{border-top-left-radius:var(--bs-border-radius-lg);border-top-right-radius:var(--bs-border-radius-lg)}&[data-v-4aa2aed9]:last-child{border-bottom-left-radius:var(--bs-border-radius-lg);border-bottom-right-radius:var(--bs-border-radius-lg)}}
+1
View File
@@ -0,0 +1 @@
import{_ as u,D as m,A as p,c as r,b as e,d as o,f as c,t as h,e as f,m as l,y as d,a as i,k as w}from"./index-CUmHRwBw.js";import{L as g}from"./localeText-DvaqSAco.js";const b={name:"setup",components:{LocaleText:g},setup(){return{store:m()}},data(){return{setup:{username:"",newPassword:"",repeatNewPassword:"",enable_totp:!0},loading:!1,errorMessage:"",done:!1}},computed:{goodToSubmit(){return this.setup.username&&this.setup.newPassword.length>=8&&this.setup.repeatNewPassword.length>=8&&this.setup.newPassword===this.setup.repeatNewPassword}},methods:{submit(){this.loading=!0,p("/api/Welcome_Finish",this.setup,n=>{n.status?(this.done=!0,this.$router.push("/2FASetup")):(document.querySelectorAll("#createAccount input").forEach(s=>s.classList.add("is-invalid")),this.errorMessage=n.message,document.querySelector(".login-container-fluid").scrollTo({top:0,left:0,behavior:"smooth"})),this.loading=!1})}}},_=["data-bs-theme"],x={class:"m-auto text-body",style:{width:"500px"}},v={class:"dashboardLogo display-4"},y={class:"mb-5"},P={key:0,class:"alert alert-danger"},N={class:"d-flex flex-column gap-3"},k={id:"createAccount",class:"d-flex flex-column gap-2"},S={class:"form-group text-body"},T={for:"username",class:"mb-1 text-muted"},C={class:"form-group text-body"},L={for:"password",class:"mb-1 text-muted"},V={class:"form-group text-body"},A={for:"confirmPassword",class:"mb-1 text-muted"},$=["disabled"],q={key:0,class:"d-flex align-items-center w-100"},M={key:1,class:"d-flex align-items-center w-100"};function B(n,s,D,E,U,F){const t=w("LocaleText");return i(),r("div",{class:"container-fluid login-container-fluid d-flex main pt-5 overflow-scroll","data-bs-theme":this.store.Configuration.Server.dashboard_theme},[e("div",x,[e("span",v,[o(t,{t:"Nice to meet you!"})]),e("p",y,[o(t,{t:"Please fill in the following fields to finish setup"}),s[4]||(s[4]=c(" 😊"))]),e("div",null,[e("h3",null,[o(t,{t:"Create an account"})]),this.errorMessage?(i(),r("div",P,h(this.errorMessage),1)):f("",!0),e("div",N,[e("form",k,[e("div",S,[e("label",T,[e("small",null,[o(t,{t:"Enter an username you like"})])]),l(e("input",{type:"text",autocomplete:"username","onUpdate:modelValue":s[0]||(s[0]=a=>this.setup.username=a),class:"form-control",id:"username",name:"username",required:""},null,512),[[d,this.setup.username]])]),e("div",C,[e("label",L,[e("small",null,[o(t,{t:"Enter a password"}),e("code",null,[o(t,{t:"(At least 8 characters and make sure is strong enough!)"})])])]),l(e("input",{type:"password",autocomplete:"new-password","onUpdate:modelValue":s[1]||(s[1]=a=>this.setup.newPassword=a),class:"form-control",id:"password",name:"password",required:""},null,512),[[d,this.setup.newPassword]])]),e("div",V,[e("label",A,[e("small",null,[o(t,{t:"Confirm password"})])]),l(e("input",{type:"password",autocomplete:"confirm-new-password","onUpdate:modelValue":s[2]||(s[2]=a=>this.setup.repeatNewPassword=a),class:"form-control",id:"confirmPassword",name:"confirmPassword",required:""},null,512),[[d,this.setup.repeatNewPassword]])])]),e("button",{class:"btn btn-dark btn-lg mb-5 d-flex btn-brand shadow align-items-center",ref:"signInBtn",disabled:!this.goodToSubmit||this.loading||this.done,onClick:s[3]||(s[3]=a=>this.submit())},[!this.loading&&!this.done?(i(),r("span",q,[o(t,{t:"Next"}),s[5]||(s[5]=e("i",{class:"bi bi-chevron-right ms-auto"},null,-1))])):(i(),r("span",M,[o(t,{t:"Saving..."}),s[6]||(s[6]=e("span",{class:"spinner-border ms-auto spinner-border-sm",role:"status"},[e("span",{class:"visually-hidden"},"Loading...")],-1))]))],8,$)])])])],8,_)}const j=u(b,[["render",B]]);export{j as default};
+1
View File
@@ -0,0 +1 @@
.animate__fadeInUp[data-v-1b44aacd]{animation-timing-function:cubic-bezier(.42,0,.22,1)}
+1
View File
@@ -0,0 +1 @@
import{_,r,D as p,g as u,c as m,b as t,d as c,J as h,a as f,k as b}from"./index-CUmHRwBw.js";import{b as v}from"./browser-CjSdxGTc.js";import{L as y}from"./localeText-DvaqSAco.js";const g={name:"share",components:{LocaleText:y},async setup(){const o=h(),e=r(!1),i=p(),n=r(""),s=r(void 0),l=r(new Blob);await u("/api/getDashboardTheme",{},d=>{n.value=d.data});const a=o.query.ShareID;return a===void 0||a.length===0?(s.value=void 0,e.value=!0):await u("/api/sharePeer/get",{ShareID:a},d=>{d.status?(s.value=d.data,l.value=new Blob([s.value.file],{type:"text/plain"})):s.value=void 0,e.value=!0}),{store:i,theme:n,peerConfiguration:s,blob:l}},mounted(){this.peerConfiguration&&v.toCanvas(document.querySelector("#qrcode"),this.peerConfiguration.file,o=>{o&&console.error(o)})},methods:{download(){const o=new Blob([this.peerConfiguration.file],{type:"text/plain"}),e=URL.createObjectURL(o),i=`${this.peerConfiguration.fileName}.conf`,n=document.createElement("a");n.href=e,n.download=i,n.click()}},computed:{getBlob(){return URL.createObjectURL(this.blob)}}},w=["data-bs-theme"],x={class:"m-auto text-body",style:{width:"500px"}},C={key:0,class:"text-center position-relative",style:{}},U={class:"position-absolute w-100 h-100 top-0 start-0 d-flex animate__animated animate__fadeInUp",style:{"animation-delay":"0.1s"}},I={class:"m-auto"},L={key:1,class:"d-flex align-items-center flex-column gap-3"},k={class:"h1 dashboardLogo text-center animate__animated animate__fadeInUp"},B={id:"qrcode",class:"rounded-3 shadow animate__animated animate__fadeInUp mb-3",ref:"qrcode"},D={class:"text-muted animate__animated animate__fadeInUp mb-1",style:{"animation-delay":"0.2s"}},R=["download","href"];function q(o,e,i,n,s,l){const a=b("LocaleText");return f(),m("div",{class:"container-fluid login-container-fluid d-flex main pt-5 overflow-scroll","data-bs-theme":this.theme},[t("div",x,[this.peerConfiguration?(f(),m("div",L,[t("div",k,[e[1]||(e[1]=t("h6",null,"WGDashboard",-1)),c(a,{t:"Scan QR Code with the WireGuard App to add peer"})]),t("canvas",B,null,512),t("p",D,[c(a,{t:"or click the button below to download the "}),e[2]||(e[2]=t("samp",null,".conf",-1)),c(a,{t:" file"})]),t("a",{download:this.peerConfiguration.fileName+".conf",href:l.getBlob,class:"btn btn-lg bg-primary-subtle text-primary-emphasis border-1 border-primary-subtle animate__animated animate__fadeInUp shadow-sm",style:{"animation-delay":"0.25s"}},e[3]||(e[3]=[t("i",{class:"bi bi-download"},null,-1)]),8,R)])):(f(),m("div",C,[e[0]||(e[0]=t("div",{class:"animate__animated animate__fadeInUp"},[t("h1",{style:{"font-size":"20rem",filter:"blur(1rem)","animation-duration":"7s"},class:"animate__animated animate__flash animate__infinite"},[t("i",{class:"bi bi-file-binary"})])],-1)),t("div",U,[t("h3",I,[c(a,{t:"Oh no... This link is either expired or invalid."})])])]))])],8,w)}const N=_(g,[["render",q],["__scopeId","data-v-1b44aacd"]]);export{N as default};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.dot.inactive[data-v-ed7817c7]{background-color:#dc3545;box-shadow:0 0 0 .2rem #dc354545}.spin[data-v-ed7817c7]{animation:spin-ed7817c7 1s infinite cubic-bezier(.82,.58,.17,.9)}@keyframes spin-ed7817c7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media screen and (max-width: 768px){.remoteServerContainer[data-v-ed7817c7]{flex-direction:column}.remoteServerContainer .button-group button[data-v-ed7817c7]{width:100%}}@media screen and (max-width: 768px){.login-box[data-v-80e20da4]{width:100%!important}.login-box div[data-v-80e20da4]{width:auto!important}}
+1
View File
@@ -0,0 +1 @@
.square[data-v-70102637]{height:var(--e901480c);transition:background-color .5s cubic-bezier(.42,0,.22,1)}.floatingLabel[data-v-70102637]{top:40px}.square[data-v-a382214a]{height:var(--38705f32);transition:background-color .5s cubic-bezier(.42,0,.22,1)}.floatingLabel[data-v-a382214a]{top:var(--38705f32)}
@@ -0,0 +1 @@
import{_ as i,p as m,r as p,q as b,a as o,c as t,d as g,w as v,n as x,b as r,t as n,e as f,j as C,s as w}from"./index-CUmHRwBw.js";const y={class:"text-muted me-2"},_={class:"fw-bold"},k={__name:"cpuCore",props:{core_number:Number,percentage:Number,align:Boolean,square:Boolean},setup(e){m(c=>({e901480c:u.value}));const l=e,a=p(!1),u=b(()=>l.square?"40px":"25px");return(c,s)=>(o(),t("div",{class:"flex-grow-1 square rounded-3 border position-relative p-2",onMouseenter:s[0]||(s[0]=d=>a.value=!0),onMouseleave:s[1]||(s[1]=d=>a.value=!1),style:w({"background-color":`rgb(13 110 253 / ${e.percentage*10}%)`})},[g(C,{name:"zoomReversed"},{default:v(()=>[a.value?(o(),t("div",{key:0,style:{"white-space":"nowrap"},class:x(["floatingLabel z-3 border position-absolute d-block p-1 px-2 bg-body text-body rounded-3 border shadow d-flex",[e.align?"end-0":"start-0"]])},[r("small",y," Core #"+n(e.core_number+1),1),r("small",_,n(e.percentage)+"% ",1)],2)):f("",!0)]),_:1})],36))}},B=i(k,[["__scopeId","data-v-70102637"]]);export{B as C};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.title[data-v-ffe5ad8f]{height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.process-move[data-v-977dc46d],.process-enter-active[data-v-977dc46d],.process-leave-active[data-v-977dc46d]{transition:all .5s cubic-bezier(.42,0,.22,1)}.process-enter-from[data-v-977dc46d],.process-leave-to[data-v-977dc46d]{opacity:0;transform:scale(.9)}.process-leave-active[data-v-977dc46d]{position:absolute;width:100%}.progress-bar[data-v-977dc46d]{width:0;transition:all 1s cubic-bezier(.42,0,.22,1)}.fadeIn[data-v-977dc46d]{opacity:0;animation:fadeIn-977dc46d .5s forwards cubic-bezier(.42,0,.22,1)}@keyframes fadeIn-977dc46d{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
+1
View File
@@ -0,0 +1 @@
import{_ as h,D as m,g as p,A as f,c as b,b as t,d as i,t as _,m as v,y as g,i as d,w as r,k as c,a as n}from"./index-CUmHRwBw.js";import{b as x}from"./browser-CjSdxGTc.js";import{L as y}from"./localeText-DvaqSAco.js";const T={name:"totp",components:{LocaleText:y},async setup(){const s=m();let e="";return await p("/api/Welcome_GetTotpLink",{},a=>{a.status&&(e=a.data)}),{l:e,store:s}},mounted(){this.l&&x.toCanvas(document.getElementById("qrcode"),this.l,function(s){})},data(){return{totp:"",totpInvalidMessage:"",verified:!1}},methods:{validateTotp(){}},watch:{totp(s){const e=document.querySelector("#totp");e.classList.remove("is-invalid","is-valid"),s.length===6&&(console.log(s),/[0-9]{6}/.test(s)?f("/api/Welcome_VerifyTotpLink",{totp:s},a=>{a.status?(this.verified=!0,e.classList.add("is-valid"),this.$emit("verified")):(e.classList.add("is-invalid"),this.totpInvalidMessage="TOTP does not match.")}):(e.classList.add("is-invalid"),this.totpInvalidMessage="TOTP can only contain numbers"))}}},k=["data-bs-theme"],w={class:"m-auto text-body",style:{width:"500px"}},L={class:"d-flex flex-column"},M={class:"dashboardLogo display-4"},C={class:"mb-2"},P={class:"text-muted"},I={class:"p-3 bg-body-secondary rounded-3 border mb-3"},O={class:"text-muted mb-0"},B=["href"],$={style:{"line-break":"anywhere"}},A={for:"totp",class:"mb-2"},D={class:"text-muted"},S={class:"form-group mb-2"},q=["disabled"],E={class:"invalid-feedback"},F={class:"valid-feedback"},R={class:"d-flex gap-3 mt-5 flex-column"};function G(s,e,a,N,W,Q){const o=c("LocaleText"),l=c("RouterLink");return n(),b("div",{class:"container-fluid login-container-fluid d-flex main pt-5 overflow-scroll","data-bs-theme":this.store.Configuration.Server.dashboard_theme},[t("div",w,[t("div",L,[t("div",null,[t("h1",M,[i(o,{t:"Multi-Factor Authentication (MFA)"})]),t("p",C,[t("small",P,[i(o,{t:"1. Please scan the following QR Code to generate TOTP with your choice of authenticator"})])]),e[1]||(e[1]=t("canvas",{id:"qrcode",class:"rounded-3 mb-2"},null,-1)),t("div",I,[t("p",O,[t("small",null,[i(o,{t:"Or you can click the link below:"})])]),t("a",{href:this.l},[t("code",$,_(this.l),1)],8,B)]),t("label",A,[t("small",D,[i(o,{t:"2. Enter the TOTP generated by your authenticator to verify"})])]),t("div",S,[v(t("input",{class:"form-control text-center totp",id:"totp",maxlength:"6",type:"text",inputmode:"numeric",autocomplete:"one-time-code","onUpdate:modelValue":e[0]||(e[0]=u=>this.totp=u),disabled:this.verified},null,8,q),[[g,this.totp]]),t("div",E,[i(o,{t:this.totpInvalidMessage},null,8,["t"])]),t("div",F,[i(o,{t:"TOTP verified!"})])])]),e[4]||(e[4]=t("hr",null,null,-1)),t("div",R,[this.verified?(n(),d(l,{key:1,to:"/",class:"btn btn-dark btn-lg d-flex btn-brand shadow align-items-center flex-grow-1 rounded-3"},{default:r(()=>[i(o,{t:"Complete"}),e[3]||(e[3]=t("i",{class:"bi bi-chevron-right ms-auto"},null,-1))]),_:1})):(n(),d(l,{key:0,to:"/",class:"btn bg-secondary-subtle text-secondary-emphasis rounded-3 flex-grow-1 btn-lg border-1 border-secondary-subtle shadow d-flex"},{default:r(()=>[i(o,{t:"I don't need MFA"}),e[2]||(e[2]=t("i",{class:"bi bi-chevron-right ms-auto"},null,-1))]),_:1}))])])])],8,k)}const z=h(T,[["render",G]]);export{z as default};
+1
View File
@@ -0,0 +1 @@
.pingPlaceholder[data-v-3e75b4d4]{width:100%;height:40px}.ping-move[data-v-3e75b4d4],.ping-enter-active[data-v-3e75b4d4],.ping-leave-active[data-v-3e75b4d4]{transition:all .4s cubic-bezier(.82,.58,.17,.9)}.ping-leave-active[data-v-3e75b4d4]{position:absolute;width:100%}.ping-enter-from[data-v-3e75b4d4],.ping-leave-to[data-v-3e75b4d4]{opacity:0;filter:blur(3px)}.ping-leave-active[data-v-3e75b4d4]{position:absolute}table th[data-v-3e75b4d4],table td[data-v-3e75b4d4]{padding:.5rem}.table[data-v-3e75b4d4]>:not(caption)>*>*{background-color:transparent!important}
+1
View File
@@ -0,0 +1 @@
import{_ as h,W as g,g as b,c as o,b as t,d as n,m as y,y as f,C as x,w as r,j as c,a as l,f as v,F as u,h as m,n as k,s as T,t as i,k as _}from"./index-CUmHRwBw.js";import{O as A}from"./osmap-C861OkPV.js";import{L as w}from"./localeText-DvaqSAco.js";const R={name:"traceroute",components:{LocaleText:w,OSMap:A},data(){return{tracing:!1,ipAddress:void 0,tracerouteResult:void 0}},setup(){return{store:g()}},methods:{execute(){this.ipAddress&&(this.tracing=!0,this.tracerouteResult=void 0,b("/api/traceroute/execute",{ipAddress:this.ipAddress},d=>{d.status?this.tracerouteResult=d.data:this.store.newMessage("Server",d.message,"danger"),this.tracing=!1}))}}},M={class:"mt-md-5 mt-3 text-body"},S={class:"container-md"},$={class:"mb-3 text-body"},C={class:"d-flex gap-2 mb-3 flex-column"},L={class:"flex-grow-1"},P={class:"mb-1 text-muted",for:"ipAddress"},O=["disabled"],V=["disabled"],B={key:0,class:"d-block"},I={key:1,class:"d-block"},N={class:"position-relative"},z={key:"pingPlaceholder"},D={key:1},E={key:"table",class:"w-100 mt-2"},F={class:"table table-sm rounded-3 w-100"},G={scope:"col"},H={scope:"col"},K={scope:"col"},W={scope:"col"},j={scope:"col"},U={scope:"col"},q={key:0},J={key:1};function Q(d,s,X,Y,Z,tt){const a=_("LocaleText"),p=_("OSMap");return l(),o("div",M,[t("div",S,[t("h3",$,[n(a,{t:"Traceroute"})]),t("div",C,[t("div",L,[t("label",P,[t("small",null,[n(a,{t:"Enter IP Address / Hostname"})])]),y(t("input",{disabled:this.tracing,id:"ipAddress",class:"form-control rounded-3","onUpdate:modelValue":s[0]||(s[0]=e=>this.ipAddress=e),onKeyup:s[1]||(s[1]=x(e=>this.execute(),["enter"])),type:"text"},null,40,O),[[f,this.ipAddress]])]),t("button",{class:"btn btn-primary rounded-3 position-relative flex-grow-1",disabled:this.tracing||!this.ipAddress,onClick:s[2]||(s[2]=e=>this.execute())},[n(c,{name:"slide"},{default:r(()=>[this.tracing?(l(),o("span",I,s[4]||(s[4]=[t("span",{class:"spinner-border spinner-border-sm","aria-hidden":"true"},null,-1),t("span",{class:"visually-hidden",role:"status"},"Loading...",-1)]))):(l(),o("span",B,s[3]||(s[3]=[t("i",{class:"bi bi-person-walking me-2"},null,-1),v("Trace! ")])))]),_:1})],8,V)]),t("div",N,[n(c,{name:"ping"},{default:r(()=>[this.tracerouteResult?(l(),o("div",D,[n(p,{d:this.tracerouteResult,type:"traceroute"},null,8,["d"]),t("div",E,[t("table",F,[t("thead",null,[t("tr",null,[t("th",G,[n(a,{t:"Hop"})]),t("th",H,[n(a,{t:"IP Address"})]),t("th",K,[n(a,{t:"Average RTT (ms)"})]),t("th",W,[n(a,{t:"Min RTT (ms)"})]),t("th",j,[n(a,{t:"Max RTT (ms)"})]),t("th",U,[n(a,{t:"Geolocation"})])])]),t("tbody",null,[(l(!0),o(u,null,m(this.tracerouteResult,(e,et)=>(l(),o("tr",null,[t("td",null,[t("small",null,i(e.hop),1)]),t("td",null,[t("small",null,[t("samp",null,i(e.ip),1)])]),t("td",null,[t("small",null,[t("samp",null,i(e.avg_rtt),1)])]),t("td",null,[t("small",null,[t("samp",null,i(e.min_rtt),1)])]),t("td",null,[t("small",null,[t("samp",null,i(e.max_rtt),1)])]),t("td",null,[e.geo.city&&e.geo.country?(l(),o("span",q,[t("small",null,i(e.geo.city)+", "+i(e.geo.country),1)])):(l(),o("span",J," - "))])]))),256))])])])])):(l(),o("div",z,[s[5]||(s[5]=t("div",{class:"pingPlaceholder bg-body-secondary rounded-3 mb-3",style:{height:"300px !important"}},null,-1)),(l(),o(u,null,m(5,e=>t("div",{class:k(["pingPlaceholder bg-body-secondary rounded-3 mb-3",{"animate__animated animate__flash animate__slower animate__infinite":this.tracing}]),style:T({"animation-delay":`${e*.05}s`})},null,6)),64))]))]),_:1})])])])}const lt=h(R,[["render",Q],["__scopeId","data-v-3e75b4d4"]]);export{lt as default};
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More