diff --git a/.github/workflows/build-site-container.yml b/.github/workflows/build-site-container.yml new file mode 100644 index 0000000..8497816 --- /dev/null +++ b/.github/workflows/build-site-container.yml @@ -0,0 +1,30 @@ +name: Build site container + +on: + push: + branches: [main] + paths: + - "site/**" + - ".github/workflows/build-container.yml" + pull_request: + paths: + - "site/**" + - ".github/workflows/build-container.yml" + workflow_dispatch: + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Build container + run: docker build --tag kr0sh512-site:ci ./site + + - name: Validate nginx configuration + run: docker run --rm kr0sh512-site:ci nginx -t diff --git a/site/Dockerfile b/site/Dockerfile new file mode 100644 index 0000000..ef31cfe --- /dev/null +++ b/site/Dockerfile @@ -0,0 +1,6 @@ +FROM docker.io/nginxinc/nginx-unprivileged:alpine + +COPY --chown=101:101 --chmod=644 nginx.conf /etc/nginx/conf.d/default.conf +COPY --chown=101:101 index.html /usr/share/nginx/html/index.html + +EXPOSE 8080 diff --git a/site/index.html b/site/index.html new file mode 100644 index 0000000..341d6cf --- /dev/null +++ b/site/index.html @@ -0,0 +1,222 @@ + + + + + + Dmitrii Gudov | kr0sh512 + + + + + + + +
+
+

Dmitrii Gudov

+

DevOps Engineer & CS Student

+
+
+ +
+
+
+

About Me

+
+

I'm a DevOps-oriented developer and Computer Science student at CMC MSU.

+

I build and operate Linux infrastructure, automate repeatable work, and develop system and backend tools. My current focus is ALT Linux and RPM internals, Kubernetes, containers, CI/CD, and Python/C systems tooling.

+
+
+
+ +
+
+

Experience

+
+
+
+ BaseALT + Linux/RPM Tooling & Systems Research +
+ Current +
+
+
+ Yandex + DevTools Team, Autonomous Transport +
+ Fall 2025 Intern +
+
+
+
+ +
+
+

Skills

+
+
+

Languages

+
  • Python
  • C
  • C++
  • Shell
  • SQL
+
+
+

Infrastructure & DevOps

+
  • Linux
  • Docker
  • Kubernetes
  • K3s
  • Helm
  • Ansible
  • Traefik
  • systemd
+
+
+

CI/CD

+
  • GitHub Actions
  • GHCR
  • Multi-arch
  • Automated testing
+
+
+

Backend & Data

+
  • FastAPI
  • SQLAlchemy
  • PostgreSQL
  • SQLite
  • MongoDB
+
+
+

Practices

+
  • pytest
  • mypy
  • Black
  • Sanitizers
+
+
+
+
+ +
+
+

Projects

+
+
+

ALT RPM Set Version Research

+

Research into ALT Linux RPM's encoded symbol sets and dependency comparison. C implementation, hashing, compatibility testing, and benchmarks.

+
C, RPM, ALT Linux
+
+
+

Pomodoro

+

Customizable browser-based Pomodoro timer and clock built with React and TypeScript.

+
React, TypeScript, Vite
+
+
+

nexus-sync

+

Client-server system for centrally managing computers and dispatching approved commands.

+
FastAPI, SQLAlchemy, Python
+
+
+

Network Diagrams Tool

+

Python tool for building and visualizing network topologies for CMC MSU coursework.

+
Python, Networking
+
+
+

Marzban Telegram VPN Bot

+

Containerized Python Telegram bot that integrates with Marzban API for VPN management.

+
Python, Telegram API, SQLite
+
+
+

Spotify to Telegram Bio

+

Script that syncs playing Spotify track with Telegram bio in real-time.

+
Python, Spotify API, Telegram API
+
+
+
+
+ +
+ +
+
+ + + + \ No newline at end of file diff --git a/site/nginx.conf b/site/nginx.conf new file mode 100644 index 0000000..d86d920 --- /dev/null +++ b/site/nginx.conf @@ -0,0 +1,25 @@ +server { + listen 8080; + listen [::]:8080; + server_name _; + + root /usr/share/nginx/html; + server_tokens off; + absolute_redirect off; + + location = / { + try_files /index.html =404; + } + + location = /index.html { + return 308 /; + } + + location / { + try_files $uri $uri/ @mainpage; + } + + location @mainpage { + try_files /index.html =404; + } +}