Добавление и Удаление сайта

Backend (Go):
- Добавлен полный функционал создания сайтов
- Добавлен функционал удаления сайтов
- Новые API методы в admin.go:
- Добавлен шаблон стартовой страницы
- Добавлена функция DecodeBase64

Исправления критических ошибок:
- Исправлена работа wildcard алиасов (*.domain.com) в handler.go
- Исправлены ошибки "файл не найден" при создании файлов

Frontend (JavaScript + HTML + CSS):
- Добавлена страница создания сайта
- Добавлена кнопка "Удалить сайт" в редактировании
- Мелкие доработки стилей

Build:
- Обновлён build_admin.ps1 - добавлен шаг генерации биндингов (wails generate module)

Fixes:
- #fix Wildcard алиасы (*.domain.com) теперь работают корректно
- #fix Удалён порт из host при проверке алиасов
- #fix Приоритет точных доменов над wildcard
- #fix Ошибки "файл не найден" при создании сайтов/vAccess
- #fix Секция добавления сайта теперь скрывается при навигации
This commit is contained in:
2025-11-14 14:18:26 +07:00
parent 0ed6a6007d
commit 4b13923375
22 changed files with 1823 additions and 57 deletions

View File

@@ -4,8 +4,8 @@ import (
"bufio"
"fmt"
"os"
"path/filepath"
"strings"
tools "vServer/Backend/tools"
)
func GetVAccessPath(host string, isProxy bool) string {
@@ -18,8 +18,13 @@ func GetVAccessPath(host string, isProxy bool) string {
func GetVAccessConfig(host string, isProxy bool) (*VAccessConfig, error) {
filePath := GetVAccessPath(host, isProxy)
// Получаем абсолютный путь БЕЗ проверки существования
absPath, err := filepath.Abs(filePath)
if err != nil {
return &VAccessConfig{Rules: []VAccessRule{}}, nil
}
// Проверяем существование файла
absPath, _ := tools.AbsPath(filePath)
if _, err := os.Stat(absPath); os.IsNotExist(err) {
// Файл не существует - возвращаем пустую конфигурацию
return &VAccessConfig{Rules: []VAccessRule{}}, nil
@@ -104,11 +109,14 @@ func SaveVAccessConfig(host string, isProxy bool, config *VAccessConfig) error {
dir = fmt.Sprintf("WebServer/www/%s", host)
}
absDir, _ := tools.AbsPath(dir)
absDir, err := filepath.Abs(dir)
if err != nil {
return err
}
os.MkdirAll(absDir, 0755)
// Получаем абсолютный путь к файлу
absPath, err := tools.AbsPath(filePath)
absPath, err := filepath.Abs(filePath)
if err != nil {
return err
}