Compare commits

...

10 Commits

Author SHA1 Message Date
vchikalkin
550fb5f05e fix contacts layout
Some checks failed
Deploy to VPS / deploy (push) Has been cancelled
2025-02-25 10:05:18 +03:00
vchikalkin
3c31dda3f7 add soundcloud 2025-02-22 02:33:51 +03:00
vchikalkin
f5538aff6b upgrade packages 2025-01-19 17:57:52 +03:00
vchikalkin
cc4aa2135b work: add sovcombanktech 2025-01-19 17:54:09 +03:00
vchikalkin
486daaf529 ci: change pull branch to 'master' 2024-12-21 18:17:33 +03:00
vchikalkin
166bf3acf8 ci: fix Error: Unable to resolve action webfactory/ssh-agent@v0.8.1, unable to find version v0.8.1 2024-12-21 18:10:53 +03:00
vchikalkin
79dcf49d5a add github workflow 2024-12-21 18:06:58 +03:00
vchikalkin
a34521973f skills: add "CI/CD" 2024-12-21 14:42:01 +03:00
vchikalkin
e26b5b8412 compose: remove comment 2024-12-21 14:39:16 +03:00
vchikalkin
66fa168ac0 messages\ru.json: fix summary 2024-12-10 12:29:18 +03:00
10 changed files with 1241 additions and 554 deletions

30
.github/workflows/deploy.yml vendored Normal file
View File

@ -0,0 +1,30 @@
name: Deploy to VPS
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up SSH
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.VPS_SSH_KEY }}
- name: Deploy via SSH
env:
USER: ${{ secrets.VPS_USER }}
HOST: ${{ secrets.VPS_HOST }}
run: |
ssh -o StrictHostKeyChecking=no $USER@$HOST << 'EOF'
cd ~/portfolio/
git pull origin master
docker compose up --build -d
EOF

View File

@ -42,6 +42,13 @@ const contacts: ContactType[] = [
},
title: 'Instagram',
},
{
href: 'https://soundcloud.com/vchika',
image: {
src: icons.Soundcloud,
},
title: 'SoundCloud',
},
];
export function Contacts() {
@ -51,7 +58,7 @@ export function Contacts() {
<section id="contact">
<div className="flex min-h-0 flex-col gap-y-3">
<h2 className="text-xl font-bold">{t('title')}</h2>
<div className="flex items-center gap-x-6">
<div className="grid grid-cols-3 gap-2 gap-y-3">
{contacts.map((contact) => (
<Contact key={contact.title} {...contact} />
))}

View File

@ -1,11 +1,13 @@
import Email from '../../public/icons/email.png';
import Github from '../../public/icons/github.png';
import Instagram from '../../public/icons/instagram.png';
import Soundcloud from '../../public/icons/soundcloud.png';
import Telegram from '../../public/icons/telegram.png';
export const icons = {
Email,
Github,
Instagram,
Soundcloud,
Telegram,
};

View File

@ -14,6 +14,7 @@ const skills = [
'MongoDB',
'Redis',
'JWT',
'CI/CD',
];
export function Skills() {

View File

@ -11,6 +11,12 @@ export function Work() {
const t = useTranslations('Work');
const companies: CompanyProps[] = [
{
description: t('sovcombanktech.description'),
href: 'https://sovcombank.it/',
period: t('sovcombanktech.period'),
title: t('sovcombanktech.title'),
},
{
description: t('evolution.description'),
href: 'https://evoleasing.ru/',

View File

@ -2,15 +2,15 @@ services:
app:
build: .
ports:
- "3000:3000"
- '3000:3000'
labels:
- "traefik.http.routers.portfolio.rule=Host(`vchikalkin.dev`)" # Замените на ваш домен
- "traefik.http.routers.portfolio.entrypoints=websecure"
- "traefik.http.routers.portfolio.tls=true"
- "traefik.http.routers.portfolio.tls.certresolver=myresolver"
- 'traefik.http.routers.portfolio.rule=Host(`vchikalkin.dev`)'
- 'traefik.http.routers.portfolio.entrypoints=websecure'
- 'traefik.http.routers.portfolio.tls=true'
- 'traefik.http.routers.portfolio.tls.certresolver=myresolver'
networks:
- web
networks:
web:
external: true
external: true

View File

@ -8,14 +8,19 @@
"description": "Веб-разработчик с широким опытом работы в различных проектах. Люблю технологии и создавать приятный софт"
},
"About": {
"summary": "О себе я лучше расскажу лично. Вы можете написать мне и предложить работу, например, в продуктовой компании или на проектной основе. Пишите! Я отвечу на все ваши вопросы. Контакты указаны ниже. 😉"
"summary": "О себе я лучше расскажу лично. Вы можете написать мне и предложить работу, например, в продуктовой аккредитованной компании. Пишите! Я отвечу на все ваши вопросы. Контакты указаны ниже. 😉"
},
"Work": {
"experience": "Опыт работы",
"sovcombanktech": {
"title": "Совкомбанк Технологии",
"description": "Старший разработчик",
"period": "Январь 2025 — Настоящее время"
},
"evolution": {
"title": "Лизинговая компания \"Эволюция\"",
"description": "Старший разрабочик",
"period": "Август 2020 — Настоящее время"
"period": "Август 2020 — Январь 2025"
},
"carcade": {
"title": "Лизинговая компания \"Carcade\"",

View File

@ -12,7 +12,7 @@
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"lucide-react": "^0.468.0",
"next": "15.0.4",
"next": "15.1.5",
"next-intl": "^3.26.0",
"next-themes": "^0.4.4",
"react": "^19.0.0",
@ -25,7 +25,7 @@
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"@vchikalkin/eslint-config-awesome": "^2.0.6",
"@vchikalkin/eslint-config-awesome": "^2.2.1",
"autoprefixer": "^10.4.20",
"eslint": "^9.16.0",
"eslint-plugin-tailwindcss": "^3.17.5",

1722
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

BIN
public/icons/soundcloud.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB