elimgweb

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘ ๊ฐ€์ด๋“œ - elimg.com ๋ฐฐํฌ

๐Ÿ“ž ๋‹น์žฅ ์‹œ์ž‘ํ•˜๊ธฐ (๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•)

โฑ๏ธ 30๋ถ„ ์•ˆ์— ์™„๋ฃŒ!


๐ŸŽฏ ๋ฐฉ๋ฒ• 1: Railway (๊ฐ€์žฅ ๋น ๋ฆ„! ๋ฌด๋ฃŒ~$5/์›”)

1๏ธโƒฃ Railway ๊ณ„์ • ๋งŒ๋“ค๊ธฐ (2๋ถ„)

  1. https://railway.app ์ ‘์†
  2. โ€œStart a New Projectโ€ ํด๋ฆญ
  3. GitHub์œผ๋กœ ๋กœ๊ทธ์ธ

2๏ธโƒฃ ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ (3๋ถ„)

  1. โ€œDeploy from GitHub repoโ€ ํด๋ฆญ
  2. elimgweb ์ €์žฅ์†Œ ์„ ํƒ
  3. โ€œDeploy Nowโ€ ํด๋ฆญ

3๏ธโƒฃ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • (5๋ถ„)

  1. ํ”„๋กœ์ ํŠธ ํด๋ฆญ โ†’ Variables ํƒญ
  2. ์•„๋ž˜ ๋ณ€์ˆ˜ ์ถ”๊ฐ€:
NODE_ENV=production
PORT=3000
JWT_SECRET=๋žœ๋คํ•œ-๊ธด-๋ฌธ์ž์—ด-์—ฌ๊ธฐ์—-์ž…๋ ฅ
ADMIN_PASSWORD=๊ฐ•๋ ฅํ•œ-๋น„๋ฐ€๋ฒˆํ˜ธ

4๏ธโƒฃ ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ (10๋ถ„)

Railway์—์„œ:

  1. Settings โ†’ Domains
  2. โ€œCustom Domainโ€ ํด๋ฆญ
  3. elimg.com ์ž…๋ ฅ
  4. CNAME ๊ฐ’ ๋ณต์‚ฌ (์˜ˆ: your-app.up.railway.app)

๊ฐ€๋น„์•„์—์„œ:

  1. My๊ฐ€๋น„์•„ ๋กœ๊ทธ์ธ
  2. ์„œ๋น„์Šค ๊ด€๋ฆฌ โ†’ ๋„๋ฉ”์ธ
  3. elimg.com ์„ ํƒ โ†’ DNS ์ •๋ณด โ†’ DNS ๊ด€๋ฆฌ
  4. ๋ ˆ์ฝ”๋“œ ์ˆ˜์ •:
ํƒ€์ž…: CNAME
ํ˜ธ์ŠคํŠธ: www
๊ฐ’: your-app.up.railway.app
ํƒ€์ž…: A
ํ˜ธ์ŠคํŠธ: @
๊ฐ’: Railway๊ฐ€ ์ œ๊ณตํ•œ IP

5๏ธโƒฃ ์™„๋ฃŒ! โœ…


๐ŸŽฏ ๋ฐฉ๋ฒ• 2: Vultr VPS (์ถ”์ฒœ! ์•ˆ์ •์ , $6/์›”)

1๏ธโƒฃ Vultr ๊ณ„์ • ๋งŒ๋“ค๊ธฐ (5๋ถ„)

  1. https://www.vultr.com ์ ‘์†
  2. ํšŒ์›๊ฐ€์ž… (์ด๋ฉ”์ผ ์ธ์ฆ)
  3. ๊ฒฐ์ œ ์ •๋ณด ๋“ฑ๋ก ($10 ํฌ๋ ˆ๋”ง ๋ฐ›๊ธฐ)

2๏ธโƒฃ ์„œ๋ฒ„ ์ƒ์„ฑ (5๋ถ„)

  1. Deploy ํด๋ฆญ
  2. ์„ค์ •:
    • Type: Cloud Compute
    • Location: Seoul, Korea (์ค‘์š”!)
    • OS: Ubuntu 22.04 LTS
    • Plan: $6/mo (1GB RAM)
  3. Deploy Now

3๏ธโƒฃ ์„œ๋ฒ„ ์ ‘์† (3๋ถ„)

# IP์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” Vultr ๋Œ€์‹œ๋ณด๋“œ์—์„œ ํ™•์ธ
ssh root@your-server-ip
# ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ

4๏ธโƒฃ ์ž๋™ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ (10๋ถ„)

์„œ๋ฒ„์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ:

# 1. ์‹œ์Šคํ…œ ์—…๋ฐ์ดํŠธ ๋ฐ Node.js ์„ค์น˜
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt update && sudo apt install -y nodejs nginx git
sudo npm install -g pm2

# 2. ํ”„๋กœ์ ํŠธ ํด๋ก 
cd /var/www
sudo git clone https://github.com/JinJun-han/elimgweb.git
cd elimgweb

# 3. ์„ค์น˜ ๋ฐ ์ดˆ๊ธฐํ™”
sudo npm install
sudo cp .env.example .env

# 4. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํŽธ์ง‘
sudo nano .env
# JWT_SECRET๊ณผ ADMIN_PASSWORD๋ฅผ ๋ณ€๊ฒฝํ•˜์„ธ์š”!
# Ctrl+X, Y, Enter๋กœ ์ €์žฅ

# 5. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™” ๋ฐ ์„œ๋ฒ„ ์‹œ์ž‘
sudo npm run init
sudo pm2 start npm --name "elimg" -- start
sudo pm2 save
sudo pm2 startup

5๏ธโƒฃ Nginx ์„ค์ • (5๋ถ„)

# Nginx ์„ค์ • ํŒŒ์ผ ์ƒ์„ฑ
sudo nano /etc/nginx/sites-available/elimg.com

์•„๋ž˜ ๋‚ด์šฉ ๋ถ™์—ฌ๋„ฃ๊ธฐ:

server {
    listen 80;
    server_name elimg.com www.elimg.com;
    
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
# ์„ค์ • ํ™œ์„ฑํ™”
sudo ln -s /etc/nginx/sites-available/elimg.com /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl restart nginx

# ๋ฐฉํ™”๋ฒฝ ์„ค์ •
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw --force enable

6๏ธโƒฃ SSL ์ธ์ฆ์„œ ์„ค์น˜ (5๋ถ„)

# Certbot ์„ค์น˜
sudo apt install -y certbot python3-certbot-nginx

# SSL ์ธ์ฆ์„œ ์ž๋™ ๋ฐœ๊ธ‰
sudo certbot --nginx -d elimg.com -d www.elimg.com
# ์ด๋ฉ”์ผ ์ž…๋ ฅ ๋ฐ ์•ฝ๊ด€ ๋™์˜

7๏ธโƒฃ ๊ฐ€๋น„์•„ ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ (2๋ถ„)

๊ฐ€๋น„์•„ DNS ๊ด€๋ฆฌ:

  1. My๊ฐ€๋น„์•„ ๋กœ๊ทธ์ธ
  2. ์„œ๋น„์Šค ๊ด€๋ฆฌ โ†’ ๋„๋ฉ”์ธ โ†’ elimg.com
  3. DNS ์ •๋ณด โ†’ DNS ๊ด€๋ฆฌ
  4. A ๋ ˆ์ฝ”๋“œ ์ˆ˜์ •:
ํƒ€์ž…: A
ํ˜ธ์ŠคํŠธ: @
๊ฐ’: [Vultr ์„œ๋ฒ„ IP ์ฃผ์†Œ]
ํƒ€์ž…: A
ํ˜ธ์ŠคํŠธ: www
๊ฐ’: [Vultr ์„œ๋ฒ„ IP ์ฃผ์†Œ]

8๏ธโƒฃ ์™„๋ฃŒ! โœ…


๐ŸŽฏ ๋ฐฉ๋ฒ• 3: ์นดํŽ˜24 Node.js ํ˜ธ์ŠคํŒ…

1๏ธโƒฃ ์นดํŽ˜24 ๊ณ ๊ฐ์„ผํ„ฐ ๋ฌธ์˜

2๏ธโƒฃ ํ˜ธ์ŠคํŒ… ๋ณ€๊ฒฝ

3๏ธโƒฃ FTP๋กœ ํŒŒ์ผ ์—…๋กœ๋“œ

# FileZilla ์‚ฌ์šฉ
ํ˜ธ์ŠคํŠธ: ftp.cafe24.com
์‚ฌ์šฉ์ž๋ช…: [์นดํŽ˜24 ID]
๋น„๋ฐ€๋ฒˆํ˜ธ: [์นดํŽ˜24 ๋น„๋ฐ€๋ฒˆํ˜ธ]

# ํ”„๋กœ์ ํŠธ ์ „์ฒด ์—…๋กœ๋“œ

4๏ธโƒฃ ์นดํŽ˜24์—์„œ ์„ค์ •

5๏ธโƒฃ ์™„๋ฃŒ! โœ…


๐Ÿ“Š ๋น„๊ตํ‘œ

๋ฐฉ๋ฒ• ๋‚œ์ด๋„ ์‹œ๊ฐ„ ๋น„์šฉ/์›” ์ถ”์ฒœ๋„
Railway โญ ์‰ฌ์›€ 30๋ถ„ ๋ฌด๋ฃŒ~$5 โญโญโญโญโญ
Vultr โญโญ ๋ณดํ†ต 1์‹œ๊ฐ„ $6 โญโญโญโญโญ
์นดํŽ˜24 โญ ์‰ฌ์›€ 30๋ถ„ ๋งŒ์›~3๋งŒ์› โญโญโญ

โœ… ๋ฐฐํฌ ํ›„ ํ™•์ธ ์‚ฌํ•ญ

1. ์›น์‚ฌ์ดํŠธ ์ ‘์†

https://elimg.com

2. API ํ…Œ์ŠคํŠธ

https://elimg.com/health
https://elimg.com/api/news?language=ko

3. ๊ด€๋ฆฌ์ž ๋กœ๊ทธ์ธ

POST https://elimg.com/api/admin/login
{
  "username": "admin",
  "password": "์„ค์ •ํ•œ_๋น„๋ฐ€๋ฒˆํ˜ธ"
}

๐Ÿ†˜ ๋ฌธ์ œ ํ•ด๊ฒฐ

DNS ์ „ํŒŒ๊ฐ€ ์•ˆ ๋ผ์š”

์„œ๋ฒ„๊ฐ€ ์•ˆ ๋– ์š”

# Railway: ๋กœ๊ทธ ํ™•์ธ
# Vultr: SSH ์ ‘์† ํ›„
sudo pm2 logs elimg
sudo pm2 restart elimg

SSL ์ธ์ฆ์„œ ์˜ค๋ฅ˜

# Vultr์—์„œ
sudo certbot renew
sudo systemctl restart nginx

๐Ÿ“ž ์ถ”๊ฐ€ ๋„์›€

1์ˆœ์œ„: Railway (๊ฐ€์žฅ ์‰ฌ์›€)

2์ˆœ์œ„: Vultr (๊ฐ€์žฅ ์•ˆ์ •์ )

3์ˆœ์œ„: ์นดํŽ˜24 (๊ฐ€์žฅ ์ต์ˆ™ํ•จ)


๐ŸŽฏ ์ถ”์ฒœ ์„ ํƒ

์ดˆ๋ณด์ž: Railway ์„ ํƒ
๊ธฐ์ˆ ์— ์ต์ˆ™: Vultr ์„ ํƒ
๊ด€๋ฆฌ ํŽธ์˜์„ฑ: ์นดํŽ˜24 ์„ ํƒ


๐Ÿšจ ๊ธ‰ํ•  ๋•Œ ์—ฐ๋ฝ์ฒ˜

์—˜๋ฆผG์„ ๊ตํšŒ

๊ธฐ์ˆ  ์ง€์› ํ•„์š” ์‹œ:


โœจ ๋งˆ์ง€๋ง‰ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๋ฐฐํฌ ์ „:

๋ฐฐํฌ ํ›„:


์ค€๋น„๋˜์…จ๋‚˜์š”? ์ง€๊ธˆ ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”! ๐Ÿš€