Команды¶
Подробное описание команд Go Project Starter.
Генерация проекта (по умолчанию)¶
Основная команда для генерации проекта из YAML-конфигурации:
Флаги¶
| Флаг | Описание | По умолчанию |
|---|---|---|
--config |
Путь к файлу конфигурации | project.yaml |
--configDir |
Директория с конфигурацией | . |
--target |
Целевая директория для генерации | . |
--dry-run |
Показать изменения без записи файлов | false |
Примеры¶
# Генерация в текущую директорию
go-project-starter --config=config.yaml
# Генерация в указанную директорию
go-project-starter --config=config.yaml --target=./my-service
# Предпросмотр изменений (dry-run)
go-project-starter --dry-run --config=config.yaml --target=./my-service
# Конфигурация из директории
go-project-starter --configDir=.project-config --config=project.yaml --target=.
init¶
Интерактивный wizard для создания начальной конфигурации проекта.
Процесс¶
- Ввод имени проекта
- Выбор логгера (zerolog)
- Выбор типа Docker registry (github, digitalocean, aws, selfhosted)
- Настройка Git репозитория
- Выбор типа проекта:
- REST API
- gRPC Service
- Telegram Bot
- Multi-app
Вывод¶
=== Go Project Starter - Project Initialization ===
--- Basic Information ---
? Project name (lowercase, no spaces): my-service
? Logger: zerolog
? Docker registry type: github
? Git repository URL: git@github.com:myorg/my-service.git
? Go module path: github.com/myorg/my-service
--- Project Type ---
? What type of project? REST API
Configuration saved to .project-config/project.yaml
Next steps:
1. Review and customize project.yaml
2. Run: go-project-starter --configDir=.project-config --target=.
3. Run: go-project-starter setup --configDir=.project-config --target=.
setup¶
Автоматизация развёртывания проекта — настройка CI/CD, серверов, deploy-скриптов.
Подкоманды¶
| Команда | Описание |
|---|---|
| (без подкоманды) | Полный интерактивный wizard |
ci |
Настройка CI/CD |
server |
Настройка серверов |
deploy |
Генерация deploy скриптов |
Wizard¶
Интерактивный wizard собирает информацию:
- CI/CD провайдер (GitHub Actions / GitLab CI)
- Окружения (staging, production)
- Серверы и SSH доступ
- Registry credentials
Пример¶
$ go-project-starter setup
=== Go Project Starter Setup Wizard ===
? Admin email (for certbot and notifications): admin@example.com
ℹ Detected CI provider: github
? Repository (owner/repo): myorg/my-service
ℹ Using registry type from project.yaml: github
--- Servers ---
? How many deployment servers? 1
--- Server 1 ---
? Server name (logical identifier): production
? Server host (IP or hostname): 192.168.1.100
? SSH port: 22
? SSH user (for initial setup): root
? Deploy user (will be created): deploy
--- Environments ---
? How many environments? 1
--- Environment 1 ---
? Environment name: production
? Git branch: main
? Use OnlineConf for configuration management? No
--- Notifications ---
? Enable Telegram notifications? No
? Enable Slack notifications? No
✓ Configuration saved to setup.yaml
--- CI/CD Setup ---
ℹ GitHub CLI (gh) detected. Will use it to configure secrets.
Configuring GitHub secrets...
✓ Set secret: SSH_PRIVATE_KEY
✓ Set secret: SSH_USER
✓ Set secret: REGISTRY_LOGIN_SERVER
✓ Set secret: GHCR_USER
✓ Set secret: GHCR_TOKEN
--- Deploy Script ---
✓ Generated deploy script: scripts/deploy.sh
=== Setup Complete ===
Генерируемые файлы¶
setup.yaml— сохранённая конфигурация wizard.github/workflows/или.gitlab-ci.yml— CI/CD файлыscripts/deploy.sh— скрипт развёртывания
migrate¶
Миграция конфигурации на новую версию генератора.
Когда использовать¶
- После обновления генератора на новую версию
- При появлении deprecated-полей в конфигурации
Процесс¶
- Чтение текущей конфигурации
- Применение миграций для устаревших полей
- Сохранение обновлённой конфигурации
Общие флаги¶
Флаги, доступные для всех команд:
| Флаг | Описание |
|---|---|
--help, -h |
Показать справку |
--version |
Показать версию |