Skip to content

Commit e76f5a1

Browse files
committed
Wrote documentation in Russian, translated all texts from Russian to English in descriptions and comments
1 parent a4909cd commit e76f5a1

16 files changed

Lines changed: 793 additions & 90 deletions

.dockerignore

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Don't include git info
2+
.git
3+
.gitignore
4+
5+
# Node.js
6+
frontend/node_modules
7+
npm-debug.log
8+
9+
# Python
10+
__pycache__/
11+
*.pyc
12+
*.pyo
13+
*.pyd
14+
env/
15+
venv/
16+
17+
# Docker
18+
.dockerignore
19+
Dockerfile*
20+
21+
# macOS / Windows
22+
.DS_Store
23+
Thumbs.db
24+
25+
# Logs
26+
*.log
27+
28+
# Editor configs
29+
.vscode/
30+
.idea/
31+
32+
# Env files
33+
.env
34+
.env.*

.github/workflows/docker-ci.yml

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,57 @@
1-
# ---------------------------------------------------------------
1+
# -----------------------------------------------------------------------------
22
# 📦 GitHub Actions: docker-ci.yml
3-
# Назначение: автоматическая сборка и публикация Docker-образов
4-
# при каждом push в ветку `main`.
5-
# Используется CI/CD (Continuous Integration & Delivery).
3+
# Purpose: Automatically build and publish Docker images
4+
# on every push to the `main` branch.
5+
# This is a CI/CD workflow (Continuous Integration & Delivery).
66
#
7-
# Что делает:
8-
# 1. Клонирует код проекта.
9-
# 2. Логинится в Docker Hub.
10-
# 3. Собирает backend и frontend образы.
11-
# 4. Загружает их в Docker Hub.
12-
# ---------------------------------------------------------------
7+
# What it does:
8+
# 1. Clones the project code.
9+
# 2. Logs into Docker Hub.
10+
# 3. Builds backend and frontend Docker images.
11+
# 4. Pushes these images to Docker Hub.
12+
# -----------------------------------------------------------------------------
1313

14-
name: Docker CI # Имя workflow, которое отображается на GitHub
14+
name: Docker CI # Workflow name shown on GitHub
1515

1616
on:
1717
push:
18-
branches: [ main ] # 👉 Запускать только при пуше в ветку "main"
18+
branches: [ main ] # 👉 Run only when pushing to the "main" branch
1919

2020
jobs:
21-
build: # 👷 Название задачи (job)
22-
runs-on: ubuntu-latest # 🔧 GitHub Actions запустит виртуальный сервер с Ubuntu
21+
build: # 👷 Job name
22+
runs-on: ubuntu-latest # 🔧 GitHub Actions will run on an Ubuntu VM
2323

24-
steps: # 📋 Шаги, которые будут выполняться последовательно
24+
steps: # 📋 Steps executed sequentially
2525

26-
- name: Checkout code # 🧾 Шаг 1: Склонировать репозиторий
27-
uses: actions/checkout@v3 # 📥 GitHub официальная экшн для checkout
26+
- name: Checkout code # 🧾 Step 1: Clone the repository
27+
uses: actions/checkout@v3 # 📥 Official GitHub checkout action
2828

29-
- name: Set up Docker Buildx # 🧰 Шаг 2: Настроить Buildx — надстройка Docker для расширенной сборки
30-
uses: docker/setup-buildx-action@v3 # 📦 Action для установки buildx
29+
- name: Set up Docker Buildx # 🧰 Step 2: Setup Buildx — Docker extension for advanced builds
30+
uses: docker/setup-buildx-action@v3 # 📦 Action to install buildx
3131

32-
- name: Login to Docker Hub # 🔐 Шаг 3: Авторизация в Docker Hub для загрузки образов
33-
uses: docker/login-action@v3 # 🛂 Официальный способ логина
32+
- name: Login to Docker Hub # 🔐 Step 3: Authenticate to Docker Hub to push images
33+
uses: docker/login-action@v3 # 🛂 Official login method
3434
with:
35-
username: ${{ secrets.DOCKER_USERNAME }} # 🔒 Имя пользователя берется из секретов GitHub
36-
password: ${{ secrets.DOCKER_PASSWORD }} # 🔒 Токен/пароль тоже из секретов (безопасно)
35+
username: ${{ secrets.DOCKER_USERNAME }} # 🔒 Username from GitHub secrets
36+
password: ${{ secrets.DOCKER_PASSWORD }} # 🔒 Password or token from secrets (secure)
3737

38-
- name: Build and push backend # ⚙️ Шаг 4: Собрать и отправить backend-образ
39-
uses: docker/build-push-action@v5 # 🛠️ Action для сборки и загрузки Docker образов
38+
- name: Build and push backend # ⚙️ Step 4: Build and push backend image
39+
uses: docker/build-push-action@v5 # 🛠️ Build and push Docker images
4040
with:
41-
context: ./backend # 📁 Контекст сборкипапка backend
42-
tags: ${{ secrets.DOCKER_USERNAME }}/flask-api:latest # 🏷️ Имя образа: dockerhub_user/flask-api
43-
push: true # 📤 Обязательно загрузить образ после сборки
41+
context: ./backend # 📁 Build context — backend folder
42+
tags: ${{ secrets.DOCKER_USERNAME }}/flask-api:latest # 🏷️ Image name: dockerhub_user/flask-api
43+
push: true # 📤 Push the image after build
4444

45-
- name: Build and push frontend # ⚙️ Шаг 5: Собрать и отправить frontend-образ
46-
uses: docker/build-push-action@v5 # 🛠️ То же самое, но для фfrontend
45+
- name: Build and push frontend # ⚙️ Step 5: Build and push frontend image
46+
uses: docker/build-push-action@v5 # 🛠️ Same as above, for frontend
4747
with:
48-
context: ./frontend # 📁 Контекст сборкипапка frontend
49-
tags: ${{ secrets.DOCKER_USERNAME }}/node-frontend:latest # 🏷️ Имя образа: dockerhub_user/node-frontend
50-
push: true # 📤 Загружаем в Docker Hub
48+
context: ./frontend # 📁 Build context — frontend folder
49+
tags: ${{ secrets.DOCKER_USERNAME }}/node-frontend:latest # 🏷️ Image name: dockerhub_user/node-frontend
50+
push: true # 📤 Push the image to Docker Hub
5151

52-
- name: Build and push nginx # ⚙️ Шаг 6: Собрать и отправить nginx-образ
53-
uses: docker/build-push-action@v5 # 🛠️ То же самое, но для nginx
52+
- name: Build and push nginx # ⚙️ Step 6: Build and push nginx image
53+
uses: docker/build-push-action@v5 # 🛠️ Same, for nginx
5454
with:
55-
context: ./nginx # 📁 Контекст сборкипапка nginx
56-
tags: ${{ secrets.DOCKER_USERNAME }}/nginx:latest # 🏷️ Имя образа: dockerhub_user/nginx
57-
push: true # 📤 Загружаем в Docker Hub
55+
context: ./nginx # 📁 Build context — nginx folder
56+
tags: ${{ secrets.DOCKER_USERNAME }}/nginx:latest # 🏷️ Image name: dockerhub_user/nginx
57+
push: true # 📤 Push the image to Docker Hub

.gitignore

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,48 @@
11
# ========== Node.js ==========
2-
# Игнорировать папку с зависимостями фронтенда
2+
# Ignore frontend dependency folder
33
frontend/node_modules/
4-
# npm временные файлы
4+
# npm temporary files
55
npm-debug.log*
66
yarn-debug.log*
77
yarn-error.log*
88

99
# ========== Python ==========
10-
# Кеш-компиляции Python
10+
# Python bytecode cache
1111
__pycache__/
1212
*.py[cod]
1313
*.pyo
1414

15-
# Виртуальное окружение Python, если создавал
15+
# Python virtual environments (if used)
1616
venv/
1717
env/
1818

1919
# ========== Docker ==========
20-
# Исключить временные файлы Docker (если такие появятся)
20+
# Ignore temporary Docker files (if any appear)
2121
*.pid
2222
*.seed
2323
*.pid.lock
2424

2525
# ========== System ==========
26-
# Файлы IDE и редакторов
26+
# IDE/editor config files
2727
.vscode/
2828
.idea/
2929

30-
# Файлы macOS и Windows
30+
# macOS and Windows system files
3131
.DS_Store
3232
Thumbs.db
3333

3434
# ========== Git ==========
35-
# Git hooks и временные файлы
35+
# Git hooks and temporary merge files
3636
*.orig
3737

3838
# ========== Logs ==========
3939
*.log
4040

41-
# ========== Secret configs (по желанию) ==========
42-
# .env файлы, если хранишь пароли локально
41+
# ========== Secret configs (optional) ==========
42+
# Ignore .env files if storing local secrets
4343
.env
4444
.env.*
4545

46-
# ========== Build outputs (если собираешь фронтенд) ==========
46+
# ========== Build outputs (if building frontend) ==========
4747
frontend/dist/
4848
frontend/build/

CONTRIBUTING.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Contributing Guide
2+
3+
👋 Welcome! Thank you for considering contributing to this project.
4+
5+
## 📌 Purpose
6+
7+
This project is created for educational purposes and as part of my professional portfolio. Contributions are welcome if they help improve clarity, documentation, or functionality — especially for beginners learning Docker and CI/CD.
8+
9+
## 🧱 Project Structure
10+
11+
- `backend/` — Flask API
12+
- `frontend/` — Node.js frontend
13+
- `nginx/` — Nginx reverse proxy
14+
- `.github/workflows/` — GitHub Actions CI/CD
15+
- `docker-compose.yml` — Local setup
16+
- `README.md` / `README.ru.md` — Documentation
17+
18+
## ✅ How to Contribute
19+
20+
1. **Fork** the repository
21+
2. **Create a branch**: `git checkout -b feature/your-feature-name`
22+
3. **Make changes**, write clear comments
23+
4. **Test** your changes locally with Docker
24+
5. **Commit**: `git commit -m "Add useful feature"`
25+
6. **Push** to your fork and open a **Pull Request**
26+
27+
## 💬 Issues & Suggestions
28+
29+
Feel free to open issues for:
30+
- Bugs
31+
- Suggestions for improvement
32+
- Questions from beginners (they are welcome!)
33+
34+
## 📄 License
35+
36+
By contributing, you agree that your contributions will be licensed under the MIT License.
37+
38+
---
39+
40+
Thanks again for being here and supporting open learning!

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 hackitect7
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21+
THE SOFTWARE.

0 commit comments

Comments
 (0)