diff --git a/.github/workflows/dev-deploy.yml b/.github/workflows/dev-deploy.yml
new file mode 100644
index 00000000..409d05bb
--- /dev/null
+++ b/.github/workflows/dev-deploy.yml
@@ -0,0 +1,18 @@
+name: Dev deploy (self-hosted)
+on:
+ release:
+ types: [published]
+
+jobs:
+ deploy:
+ runs-on: [self-hosted, Linux, dev]
+ steps:
+ - name: Pull latest compose
+ run: |
+ cd /opt/EasyVPN.dev
+ docker-compose --profile init pull
+
+ - name: Restart Docker Compose
+ run: |
+ cd /opt/EasyVPN.dev
+ docker-compose --profile init up -d
diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml
new file mode 100644
index 00000000..17da21bb
--- /dev/null
+++ b/.github/workflows/prod-deploy.yml
@@ -0,0 +1,30 @@
+name: Production deploy (self-hosted)
+on:
+ workflow_dispatch:
+ inputs:
+ confirm_secret:
+ description: 'Confirm deploy in **PROD**'
+ required: true
+
+jobs:
+ deploy:
+ runs-on: [self-hosted, Linux, prod]
+ steps:
+ - name: Secret check
+ run: |
+ if [ "${{ github.event.inputs.confirm_secret }}" != "${{ secrets.PROD_DEPLOY_SECRET }}" ]; then
+ echo "❌ Invlid secret. Stoping."
+ exit 1
+ fi
+ shell: bash
+
+ - name: Pull latest compose
+ run: |
+ cd /opt/EasyVPN
+ curl -L -o docker-compose.yml https://raw.githubusercontent.com/F1st3K/EasyVPN/refs/heads/main/docker-compose.yml
+ docker-compose pull
+
+ - name: Restart Docker Compose
+ run: |
+ cd /opt/EasyVPN
+ docker-compose up -d
diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml
index 21c26bf5..22b69bbe 100644
--- a/.github/workflows/publish-release.yml
+++ b/.github/workflows/publish-release.yml
@@ -55,7 +55,7 @@ jobs:
- name: Configure release note
env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ GITHUB_TOKEN: ${{ secrets.PAT }}
run: |
gh release create $(cat VERSION) \
--repo="$GITHUB_REPOSITORY" \
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 72a9d6cd..bbd22ccc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
# Changelog
+## `1.1.0` (2025-05-22)
+
+### Features
+
+- backend: Hide swagger documentation by env variable
+- backend: Add version for response health
+- Single Deploy: Reject HTTPS in app
+- Single Deploy: Add deployment for dev and prod enviroment by workflow
+
## `1.0.0` (2025-05-20)
### Features
diff --git a/README.md b/README.md
index 6dade135..85eefdbd 100644
--- a/README.md
+++ b/README.md
@@ -13,13 +13,19 @@
# EasyVPN
+[](https://hub.docker.com/u/easyvpn)
+
[](https://github.com/F1st3K/EasyVPN/actions/workflows/test-single-deploy.yml)
+[](https://dev.easy-vpn.f1st3k.tw1.su)
+[](https://easy-vpn.f1st3k.tw1.su)
+
+
-[](https://hub.docker.com/u/easyvpn)
[](https://creativecommons.org/licenses/by-nc/4.0/)
[](https://GitHub.com/F1st3K/EasyVPN/graphs/contributors/)
[](https://github.com/F1st3K/EasyVPN/stargazers)
+
Простое VPN + Backend + Frontend приложение на одном сервере!
[**💻 Watch**](https://www.youtube.com/watch?v=nR8FZ8_98pk)
diff --git a/VERSION b/VERSION
index 3eefcb9d..9084fa2f 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.0
+1.1.0
diff --git a/backend/src/EasyVPN.Api/EasyVPN.Api.csproj b/backend/src/EasyVPN.Api/EasyVPN.Api.csproj
index 11158d9a..01f7ca0b 100644
--- a/backend/src/EasyVPN.Api/EasyVPN.Api.csproj
+++ b/backend/src/EasyVPN.Api/EasyVPN.Api.csproj
@@ -3,7 +3,7 @@
net8.0
enable
enable
- 1.0.0
+ 1.1.0
true
$(NoWarn);1591
diff --git a/backend/src/EasyVPN.Api/Program.cs b/backend/src/EasyVPN.Api/Program.cs
index 01879f18..e0f58a0f 100644
--- a/backend/src/EasyVPN.Api/Program.cs
+++ b/backend/src/EasyVPN.Api/Program.cs
@@ -7,6 +7,9 @@
var builder = WebApplication.CreateBuilder(args);
{
+ builder.Services.Configure(
+ builder.Configuration.GetSection(Options.Features.SectionName));
+
builder.Services.AddCors(options =>
options.AddPolicy("AllowAll", policy =>
policy.AllowAnyOrigin()
@@ -21,8 +24,7 @@
var app = builder.Build();
{
- var f = new Options.Featuers();
- app.Configuration.Bind(Options.Featuers.SectionName, f);
+ var f = app.Services.GetRequiredService>().Value;
if (f.UseDocumentationEndpoint)
app.UseDocumentationEndpoint();
diff --git a/backend/src/EasyVPN.Application/EasyVPN.Application.csproj b/backend/src/EasyVPN.Application/EasyVPN.Application.csproj
index 7d767a36..42bd3aa2 100644
--- a/backend/src/EasyVPN.Application/EasyVPN.Application.csproj
+++ b/backend/src/EasyVPN.Application/EasyVPN.Application.csproj
@@ -3,7 +3,7 @@
net8.0
enable
enable
- 1.0.0
+ 1.1.0
diff --git a/backend/src/EasyVPN.Contracts/EasyVPN.Contracts.csproj b/backend/src/EasyVPN.Contracts/EasyVPN.Contracts.csproj
index ef03febd..2b001995 100644
--- a/backend/src/EasyVPN.Contracts/EasyVPN.Contracts.csproj
+++ b/backend/src/EasyVPN.Contracts/EasyVPN.Contracts.csproj
@@ -3,6 +3,6 @@
net8.0
enable
enable
- 1.0.0
+ 1.1.0
\ No newline at end of file
diff --git a/backend/src/EasyVPN.Domain/EasyVPN.Domain.csproj b/backend/src/EasyVPN.Domain/EasyVPN.Domain.csproj
index d7786493..103c16de 100644
--- a/backend/src/EasyVPN.Domain/EasyVPN.Domain.csproj
+++ b/backend/src/EasyVPN.Domain/EasyVPN.Domain.csproj
@@ -3,7 +3,7 @@
net8.0
enable
enable
- 1.0.0
+ 1.1.0
diff --git a/backend/src/EasyVPN.Infrastructure/EasyVPN.Infrastructure.csproj b/backend/src/EasyVPN.Infrastructure/EasyVPN.Infrastructure.csproj
index 8021f20c..2867978c 100644
--- a/backend/src/EasyVPN.Infrastructure/EasyVPN.Infrastructure.csproj
+++ b/backend/src/EasyVPN.Infrastructure/EasyVPN.Infrastructure.csproj
@@ -3,7 +3,7 @@
net8.0
enable
enable
- 1.0.0
+ 1.1.0
diff --git a/backend/src/EasyVPN.Infrastructure/Settings/Options.Featuers.cs b/backend/src/EasyVPN.Infrastructure/Settings/Options.Featuers.cs
index 33ab4e5a..70b9be8e 100644
--- a/backend/src/EasyVPN.Infrastructure/Settings/Options.Featuers.cs
+++ b/backend/src/EasyVPN.Infrastructure/Settings/Options.Featuers.cs
@@ -2,9 +2,9 @@ namespace EasyVPN.Infrastructure.Settings;
public static partial class Options
{
- public class Featuers
+ public class Features
{
- public const string SectionName = "Featuers";
+ public const string SectionName = "Features";
public bool UseDocumentationEndpoint { get; init; }
public bool UseExceptionHandler { get; init; }
diff --git a/backend/tests/UnitTests/EasyVPN.Application.UnitTests/EasyVPN.Application.UnitTests.csproj b/backend/tests/UnitTests/EasyVPN.Application.UnitTests/EasyVPN.Application.UnitTests.csproj
index 6a568808..e7ba2ca0 100644
--- a/backend/tests/UnitTests/EasyVPN.Application.UnitTests/EasyVPN.Application.UnitTests.csproj
+++ b/backend/tests/UnitTests/EasyVPN.Application.UnitTests/EasyVPN.Application.UnitTests.csproj
@@ -5,7 +5,7 @@
enable
false
true
- 1.0.0
+ 1.1.0
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index f3775db2..83486333 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "easy-vpn-frontend",
- "version": "1.0.0",
+ "version": "1.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "easy-vpn-frontend",
- "version": "1.0.0",
+ "version": "1.1.0",
"dependencies": {
"@emotion/react": "^11.13.3",
"@emotion/styled": "^11.13.0",
diff --git a/frontend/package.json b/frontend/package.json
index ab53c7a2..87d02918 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,6 +1,6 @@
{
"name": "easy-vpn-frontend",
- "version": "1.0.0",
+ "version": "1.1.0",
"private": true,
"dependencies": {
"@emotion/react": "^11.13.3",
diff --git a/init/init.sh b/init/init.sh
index ce9170da..176e7bde 100755
--- a/init/init.sh
+++ b/init/init.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-VERSION=1.0.0
+VERSION=1.1.0
echo ""
echo "🔧 Data Initialization Script"
diff --git a/services/AmneziaWgVpn/cmd/config.yml b/services/AmneziaWgVpn/cmd/config.yml
index b3f19db8..9e9ed8cf 100644
--- a/services/AmneziaWgVpn/cmd/config.yml
+++ b/services/AmneziaWgVpn/cmd/config.yml
@@ -1,6 +1,6 @@
service:
name: 'wireguard-vpn'
- version: '1.0.0'
+ version: '1.1.0'
api:
port: "8010"
vpn:
diff --git a/services/TelegramBot/pyproject.toml b/services/TelegramBot/pyproject.toml
index 16ae2fda..b1953647 100644
--- a/services/TelegramBot/pyproject.toml
+++ b/services/TelegramBot/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "easy-vpn-telegram-bot"
-version = "1.0.0"
+version = "1.1.0"
description = "Telegram Notification Bot for Easy VPN"
authors = ["Alex Poryadin (sw1pr0g) "]
license = "MIT"
diff --git a/services/WireguardVpn/cmd/config.yml b/services/WireguardVpn/cmd/config.yml
index f0b47209..99b6d041 100644
--- a/services/WireguardVpn/cmd/config.yml
+++ b/services/WireguardVpn/cmd/config.yml
@@ -1,6 +1,6 @@
service:
name: 'wireguard-vpn'
- version: '1.0.0'
+ version: '1.1.0'
api:
port: "8000"
vpn: