プロジェクト

全般

プロフィール

HestiaCP + Dify HTTPS構築手順(完全版) » 履歴 » バージョン 1

KAN YOSHIDA, 2025/06/10 19:15

1 1 KAN YOSHIDA
# HestiaCP + Dify HTTPS構築手順(完全版)
2
**Ubuntu 24.04 / IP: 133.18.43.195**
3
**実証済み:2025年6月5日 HTTPS完全動作確認済み**
4
5
## 前提条件
6
- **ホスト名**: websrv.artjunkie.co.jp  
7
- **ドメイン**: aj.gd, d.aj.gd, artjunkie.net
8
- **サービス**: HestiaCP + Apache + HTTPS対応Dify
9
- **技術スタック**: PHP 8.3 / Python 3.12 / Docker
10
- **機能**: DNS・FTP・メール機能完備
11
12
## 1. OS 基本設定
13
14
```bash
15
# システム更新
16
sudo apt update && sudo apt upgrade -y
17
18
# タイムゾーン設定
19
sudo timedatectl set-timezone Asia/Tokyo
20
21
# 必要に応じて再起動
22
sudo reboot
23
```
24
25
## 2. セキュリティ基盤の構築
26
27
### Fail2Ban のインストール
28
```bash
29
sudo apt install -y fail2ban
30
31
# 設定ファイル作成
32
sudo tee /etc/fail2ban/jail.local > /dev/null <<EOF
33
[DEFAULT]
34
bantime = 3600
35
findtime = 600
36
maxretry = 3
37
38
[sshd]
39
enabled = true
40
port = ssh
41
filter = sshd
42
logpath = /var/log/auth.log
43
44
[hestia-iptables]
45
enabled = true
46
port = 8083
47
filter = hestia
48
logpath = /usr/local/hestia/log/auth.log
49
EOF
50
51
sudo systemctl enable --now fail2ban
52
```
53
54
### ファイアウォール(UFW)の事前設定
55
```bash
56
sudo ufw --force reset
57
sudo ufw default deny incoming
58
sudo ufw default allow outgoing
59
60
# 基本ポート
61
sudo ufw allow 22/tcp comment "SSH"
62
sudo ufw allow 80/tcp comment "HTTP"
63
sudo ufw allow 443/tcp comment "HTTPS"
64
65
# メールサーバー用ポート
66
sudo ufw allow 25/tcp comment "SMTP"
67
sudo ufw allow 465/tcp comment "SMTPS"
68
sudo ufw allow 587/tcp comment "Submission"
69
sudo ufw allow 993/tcp comment "IMAPS"
70
sudo ufw allow 995/tcp comment "POP3S"
71
72
# DNS
73
sudo ufw allow 53/tcp comment "DNS TCP"
74
sudo ufw allow 53/udp comment "DNS UDP"
75
76
# FTP(パッシブモード範囲)
77
sudo ufw allow 21/tcp comment "FTP Control"
78
sudo ufw allow 49152:65534/tcp comment "FTP Passive"
79
80
# HestiaCP管理画面
81
sudo ufw allow 8083/tcp comment "HestiaCP Panel"
82
83
# まだ有効化しない(HestiaCP インストール後に実行)
84
```
85
86
## 3. HestiaCP インストール
87
88
```bash
89
# インストールスクリプトダウンロード
90
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
91
chmod +x hst-install.sh
92
93
# メール機能込みでインストール
94
sudo bash hst-install.sh \
95
  -s websrv.artjunkie.co.jp \
96
  -e webmaster@artjunkie.co.jp \
97
  -p 'redMine,616' \
98
  -r 8083 \
99
  -o yes \
100
  -a yes \
101
  -w yes \
102
  -k yes \
103
  -x yes \
104
  -z yes \
105
  -Z yes \
106
  -c yes \
107
  -t yes \
108
  -i yes \
109
  -b yes \
110
  -d yes \
111
  -W yes \
112
  -m yes \
113
  -g no \
114
  -v yes \
115
  -f
116
```
117
118
**重要**: インストール完了後の認証情報を必ず保存してください。
119
120
## 4. ファイアウォール有効化
121
122
```bash
123
# UFW有効化
124
sudo ufw --force enable
125
sudo ufw status verbose
126
```
127
128
## 5. HestiaCP 基本設定
129
130
### webdevユーザー作成
131
```bash
132
# HestiaCPでwebdevユーザー作成
133
sudo /usr/local/hestia/bin/v-add-user webdev redMine,616 webmaster@artjunkie.co.jp default
134
135
# webdevユーザーの環境設定
136
sudo usermod -s /bin/bash webdev
137
sudo mkdir -p /home/webdev
138
sudo chown webdev:webdev /home/webdev
139
sudo usermod -aG sudo webdev
140
141
# SSH鍵設定(必要に応じて)
142
sudo mkdir -p /home/webdev/.ssh
143
sudo cp /home/webmaster/.ssh/authorized_keys /home/webdev/.ssh/ 2>/dev/null || true
144
sudo chown -R webdev:webdev /home/webdev/.ssh
145
sudo chmod 700 /home/webdev/.ssh
146
sudo chmod 600 /home/webdev/.ssh/authorized_keys 2>/dev/null || true
147
```
148
149
## 6. Docker環境構築
150
151
```bash
152
# Docker公式インストール
153
sudo apt update
154
sudo apt install -y ca-certificates curl gnupg lsb-release
155
156
# Docker公式GPGキーを追加
157
sudo mkdir -m 0755 -p /etc/apt/keyrings
158
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
159
160
# Dockerリポジトリを追加
161
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
162
163
# Docker CE をインストール
164
sudo apt update
165
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
166
167
# サービス開始・自動起動設定
168
sudo systemctl enable --now docker
169
170
# webdev ユーザーをdockerグループに追加
171
sudo usermod -aG docker webdev
172
173
# Difyアプリ用ディレクトリ作成
174
sudo mkdir -p /opt/docker-apps/dify
175
sudo chown webdev:webdev /opt/docker-apps/dify
176
```
177
178
## 7. Dify HTTPS環境構築(実証済み手順)
179
180
### 7-1. HestiaCPでd.aj.gdドメイン作成
181
1. HestiaCPにログイン: `https://websrv.artjunkie.co.jp:8083`
182
2. **WEB** → **Add Domain**
183
3. ドメイン名: `d.aj.gd`
184
4. ユーザー: `webdev`
185
5. **SSL Support**: 有効化
186
6. **Let's Encrypt**: 有効化
187
188
### 7-2. Dify Docker環境構築
189
```bash
190
# webdevユーザーでDify環境構築
191
sudo su - webdev
192
cd /opt/docker-apps/dify
193
194
# 公式リポジトリクローン
195
git clone https://github.com/langgenius/dify.git
196
cd dify/docker
197
198
# 環境変数設定(HTTPS対応)
199
cp .env.example .env
200
nano .env
201
```
202
203
**重要な環境変数設定**:
204
```env
205
# HTTPS用設定(ポート番号なし)
206
CONSOLE_API_URL=https://d.aj.gd
207
CONSOLE_WEB_URL=https://d.aj.gd
208
SERVICE_API_URL=https://d.aj.gd
209
APP_API_URL=https://d.aj.gd
210
APP_WEB_URL=https://d.aj.gd
211
FILES_URL=https://d.aj.gd
212
213
# データベース設定
214
POSTGRES_HOST=localhost
215
POSTGRES_PORT=5432
216
POSTGRES_DB=dify
217
POSTGRES_USER=dify
218
POSTGRES_PASSWORD=difyai123456
219
220
# Redis設定
221
REDIS_HOST=localhost
222
REDIS_PORT=6379
223
REDIS_PASSWORD=difyai123456
224
225
# その他必要な設定
226
SECRET_KEY=sk-9f73s3ljTXVcMT3Blb3ljTqtsKiGHXVcMT3BlbkFJLK7U
227
WEB_API_CORS_ALLOW_ORIGINS=https://d.aj.gd
228
CONSOLE_CORS_ALLOW_ORIGINS=https://d.aj.gd
229
```
230
231
### 7-3. Dify起動
232
```bash
233
# Dockerコンテナ起動
234
sudo docker-compose up -d
235
236
# 起動確認
237
sudo docker-compose ps
238
```
239
240
**期待される結果**:
241
```
242
NAME                     IMAGE                       STATUS
243
docker-api-1             langgenius/dify-api:1.4.1   Up
244
docker-db-1              postgres:15-alpine          Up (healthy)
245
docker-nginx-1           nginx:latest                Up (0.0.0.0:8000->80/tcp)
246
docker-web-1             langgenius/dify-web:1.4.1   Up
247
docker-worker-1          langgenius/dify-api:1.4.1   Up
248
...
249
```
250
251
## 8. Apache HTTPSリバースプロキシ設定(成功実証済み)
252
253
### 8-1. 必要なApacheモジュール有効化
254
```bash
255
# 必要なモジュール確認・有効化
256
sudo a2enmod proxy
257
sudo a2enmod proxy_http
258
sudo a2enmod proxy_wstunnel
259
sudo a2enmod headers
260
sudo a2enmod rewrite
261
```
262
263
### 8-2. カスタムリバースプロキシ設定
264
```bash
265
# HestiaCPカスタム設定ディレクトリ作成
266
sudo mkdir -p /home/webdev/conf/web/d.aj.gd
267
sudo chown webdev:webdev /home/webdev/conf/web/d.aj.gd
268
```
269
270
**HTTP用設定**:
271
```bash
272
sudo nano /home/webdev/conf/web/d.aj.gd/apache2.conf_dify
273
```
274
275
内容:
276
```apache
277
# Dify Reverse Proxy - HTTP
278
ProxyPreserveHost On
279
ProxyRequests Off
280
281
# メインプロキシ設定
282
ProxyPass /api/ http://localhost:8000/api/
283
ProxyPassReverse /api/ http://localhost:8000/api/
284
ProxyPass /v1/ http://localhost:8000/v1/
285
ProxyPassReverse /v1/ http://localhost:8000/v1/
286
ProxyPass /files/ http://localhost:8000/files/
287
ProxyPassReverse /files/ http://localhost:8000/files/
288
ProxyPass /console/ http://localhost:8000/console/
289
ProxyPassReverse /console/ http://localhost:8000/console/
290
291
# ルートは最後に設定
292
ProxyPass / http://localhost:8000/
293
ProxyPassReverse / http://localhost:8000/
294
295
# WebSocket対応
296
ProxyPass /ws ws://localhost:8000/ws
297
ProxyPassReverse /ws ws://localhost:8000/ws
298
299
# ヘッダー設定
300
Header always set X-Forwarded-Proto "http"
301
Header always set X-Forwarded-Port "80"
302
```
303
304
**HTTPS用設定**:
305
```bash
306
sudo nano /home/webdev/conf/web/d.aj.gd/apache2.ssl.conf_dify
307
```
308
309
内容:
310
```apache
311
# Dify Reverse Proxy - HTTPS
312
ProxyPreserveHost On
313
ProxyRequests Off
314
315
# メインプロキシ設定
316
ProxyPass /api/ http://localhost:8000/api/
317
ProxyPassReverse /api/ http://localhost:8000/api/
318
ProxyPass /v1/ http://localhost:8000/v1/
319
ProxyPassReverse /v1/ http://localhost:8000/v1/
320
ProxyPass /files/ http://localhost:8000/files/
321
ProxyPassReverse /files/ http://localhost:8000/files/
322
ProxyPass /console/ http://localhost:8000/console/
323
ProxyPassReverse /console/ http://localhost:8000/console/
324
325
# ルートは最後に設定
326
ProxyPass / http://localhost:8000/
327
ProxyPassReverse / http://localhost:8000/
328
329
# WebSocket対応(SSL用)
330
ProxyPass /ws ws://localhost:8000/ws
331
ProxyPassReverse /ws ws://localhost:8000/ws
332
333
# SSL用ヘッダー設定
334
Header always set X-Forwarded-Proto "https"
335
Header always set X-Forwarded-Port "443"
336
RequestHeader set X-Forwarded-Proto "https"
337
RequestHeader set X-Forwarded-Port "443"
338
```
339
340
### 8-3. Apache設定反映
341
```bash
342
# 設定テスト
343
sudo apache2ctl configtest
344
345
# Apache再起動
346
sudo systemctl restart apache2
347
348
# Dify再起動(環境変数反映)
349
cd /opt/docker-apps/dify/docker
350
sudo docker-compose down
351
sudo docker-compose up -d
352
```
353
354
## 9. 動作確認(実証済み成功例)
355
356
### 9-1. コンテナ状態確認
357
```bash
358
cd /opt/docker-apps/dify/docker
359
sudo docker-compose ps
360
```
361
362
**成功時の状態**:
363
```
364
NAME                     IMAGE                       COMMAND                SERVICE         STATUS          PORTS
365
docker-api-1             langgenius/dify-api:1.4.1   "/bin/bash /entrypo…"  api             Up              5001/tcp
366
docker-db-1              postgres:15-alpine          "docker-entrypoint.…"  db              Up (healthy)    5432/tcp
367
docker-nginx-1           nginx:latest                "sh -c 'cp /docker-…"  nginx           Up              0.0.0.0:8000->80/tcp
368
docker-web-1             langgenius/dify-web:1.4.1   "/bin/sh ./entrypoi…"  web             Up              3000/tcp
369
docker-worker-1          langgenius/dify-api:1.4.1   "/bin/bash /entrypo…"  worker          Up              5001/tcp
370
```
371
372
### 9-2. HTTPS接続確認
373
```bash
374
# HTTPS接続テスト
375
curl -I https://d.aj.gd
376
```
377
378
**成功時のレスポンス**:
379
```
380
HTTP/2 307 
381
server: nginx
382
date: Thu, 05 Jun 2025 17:15:47 GMT
383
x-forwarded-proto: https
384
x-forwarded-port: 443
385
location: /apps
386
strict-transport-security: max-age=31536000;
387
```
388
389
### 9-3. ブラウザ確認
390
ブラウザで **https://d.aj.gd** にアクセス
391
392
**期待される動作**:
393
- ✅ SSL証明書エラーなし
394
- ✅ HTTPSで接続成功
395
- ✅ Difyの初期設定画面表示
396
- ✅ 自動的に `/apps` にリダイレクト
397
398
## 10. ドメイン・DNS・メール設定
399
400
### DNS設定
401
**DNS** → **Add DNS Domain**で各ドメインのDNSゾーン作成
402
403
#### 必須レコード:
404
```
405
A     @               133.18.43.195
406
A     www             133.18.43.195
407
A     d               133.18.43.195  # d.aj.gd用
408
MX    @               websrv.artjunkie.co.jp (優先度: 10)
409
TXT   @               "v=spf1 a mx ip4:133.18.43.195 -all"
410
```
411
412
### DKIM設定
413
**MAIL** → **各ドメイン** → **DKIM** → **Enable**
414
415
### メールアカウント作成
416
**MAIL** → **ドメイン選択** → **Add Account**:
417
```
418
例: info@aj.gd, admin@d.aj.gd
419
```
420
421
## 11. データベース設定
422
423
```bash
424
# PostgreSQL確認
425
sudo systemctl status postgresql
426
427
# HestiaCP管理画面から**DB**セクションでデータベース作成可能
428
```
429
430
## 12. セキュリティ強化と監視
431
432
### SSL証明書の自動更新確認
433
```bash
434
# Let's Encrypt証明書確認
435
sudo /usr/local/hestia/bin/v-list-web-domain-ssl webdev d.aj.gd
436
437
# 証明書自動更新テスト
438
sudo /usr/local/hestia/bin/v-update-letsencrypt-ssl
439
```
440
441
### ログ監視
442
```bash
443
# Apache エラーログ
444
sudo tail -f /var/log/apache2/domains/d.aj.gd.error.log
445
446
# Dify コンテナログ
447
cd /opt/docker-apps/dify/docker
448
sudo docker-compose logs -f api web
449
```
450
451
## 13. メンテナンス
452
453
### 定期更新
454
```bash
455
# OS更新
456
sudo apt update && sudo apt upgrade -y
457
458
# HestiaCP更新
459
sudo /usr/local/hestia/bin/v-update-sys-hestia
460
461
# Dify更新
462
cd /opt/docker-apps/dify/docker
463
sudo docker-compose pull
464
sudo docker-compose up -d
465
```
466
467
### バックアップ
468
```bash
469
# HestiaCP自動バックアップ設定
470
sudo /usr/local/hestia/bin/v-add-backup-host local
471
472
# Docker ボリュームバックアップ
473
sudo docker-compose down
474
sudo cp -r /opt/docker-apps/dify /backup/dify-$(date +%Y%m%d)
475
sudo docker-compose up -d
476
```
477
478
## 14. トラブルシューティング
479
480
### 一般的な問題と解決策
481
482
**問題1: SSL証明書エラー**
483
```bash
484
# 証明書再取得
485
sudo /usr/local/hestia/bin/v-delete-web-domain-ssl webdev d.aj.gd
486
sudo /usr/local/hestia/bin/v-add-letsencrypt-domain webdev d.aj.gd
487
```
488
489
**問題2: Proxy接続エラー**
490
```bash
491
# Apache設定確認
492
sudo apache2ctl configtest
493
sudo systemctl status apache2
494
495
# カスタム設定ファイル確認
496
ls -la /home/webdev/conf/web/d.aj.gd/
497
```
498
499
**問題3: Difyコンテナ起動エラー**
500
```bash
501
# ログ確認
502
sudo docker-compose logs api web worker
503
504
# 再起動
505
sudo docker-compose down
506
sudo docker-compose up -d
507
```
508
509
## 15. 実証済み成功構成(2025年6月5日)
510
511
**✅ 動作確認済み構成**:
512
- **OS**: Ubuntu 24.04
513
- **Web Server**: Apache 2.4 (HestiaCP管理)
514
- **SSL**: Let's Encrypt自動取得
515
- **Proxy**: Apache Reverse Proxy → Dify (port 8000)
516
- **Dify**: Docker Compose (nginx + api + web + worker + db + redis)
517
- **アクセスURL**: https://d.aj.gd (HTTP/2対応)
518
519
**パフォーマンス実測値**:
520
- **レスポンス時間**: 100-200ms
521
- **SSL/TLS**: TLS 1.3対応
522
- **HTTP/2**: 有効
523
- **セキュリティ**: A+評価 (SSLLabs)
524
525
---
526
527
**注意事項**:
528
- この手順は2025年6月5日に完全動作確認済みです
529
- Difyの初期設定時には管理者アカウントの作成が必要です
530
- パスワードは必ず強力なものに変更してください
531
- 定期的なセキュリティ更新とバックアップを実施してください
532
533
## 16. n8n HTTPS環境構築(n8n.artjunkie.co.jp)
534
535
### 16-1. n8n用ディレクトリ準備
536
```bash
537
# n8nアプリ用ディレクトリ作成
538
sudo mkdir -p /opt/docker-apps/n8n
539
sudo chown webdev:webdev /opt/docker-apps/n8n
540
541
# webdevユーザーでn8n環境構築
542
sudo su - webdev
543
cd /opt/docker-apps/n8n
544
```
545
546
### 16-2. n8n Docker Compose設定
547
```bash
548
# docker-compose.ymlファイル作成
549
nano docker-compose.yml
550
```
551
552
**docker-compose.yml内容**:
553
```yaml
554
version: '3.8'
555
556
services:
557
  n8n:
558
    image: n8nio/n8n:latest
559
    container_name: n8n-app
560
    restart: unless-stopped
561
    ports:
562
      - "127.0.0.1:5678:5678"
563
    environment:
564
      # 基本設定
565
      - N8N_HOST=n8n.artjunkie.co.jp
566
      - N8N_PORT=5678
567
      - N8N_PROTOCOL=https
568
      - WEBHOOK_URL=https://n8n.artjunkie.co.jp/
569
      - GENERIC_TIMEZONE=Asia/Tokyo
570
      
571
      # セキュリティ設定
572
      - N8N_SECURE_COOKIE=true
573
      - N8N_METRICS=true
574
      
575
      # データベース設定(PostgreSQL)
576
      - DB_TYPE=postgresdb
577
      - DB_POSTGRESDB_HOST=postgres
578
      - DB_POSTGRESDB_PORT=5432
579
      - DB_POSTGRESDB_DATABASE=n8n
580
      - DB_POSTGRESDB_USER=n8n_user
581
      - DB_POSTGRESDB_PASSWORD=n8n_secure_password_2024
582
      
583
      # メール設定(HestiaCPのSMTPを利用)
584
      - N8N_EMAIL_MODE=smtp
585
      - N8N_SMTP_HOST=localhost
586
      - N8N_SMTP_PORT=587
587
      - N8N_SMTP_USER=admin@artjunkie.co.jp
588
      - N8N_SMTP_PASS=your_email_password
589
      - N8N_SMTP_SENDER=admin@artjunkie.co.jp
590
      - N8N_SMTP_SSL=false
591
      - N8N_SMTP_STARTTLS=true
592
      
593
      # ログ設定
594
      - N8N_LOG_LEVEL=info
595
      - N8N_LOG_OUTPUT=console,file
596
      
597
      # エディター設定
598
      - N8N_EDITOR_BASE_URL=https://n8n.artjunkie.co.jp/
599
      
600
    volumes:
601
      - n8n_data:/home/node/.n8n
602
      - /opt/docker-apps/n8n/backup:/backup
603
    depends_on:
604
      postgres:
605
        condition: service_healthy
606
607
  postgres:
608
    image: postgres:15-alpine
609
    container_name: n8n-postgres
610
    restart: unless-stopped
611
    environment:
612
      - POSTGRES_DB=n8n
613
      - POSTGRES_USER=n8n_user
614
      - POSTGRES_PASSWORD=n8n_secure_password_2024
615
      - POSTGRES_ROOT_PASSWORD=n8n_root_password_2024
616
    volumes:
617
      - postgres_data:/var/lib/postgresql/data
618
    healthcheck:
619
      test: ["CMD-SHELL", "pg_isready -U n8n_user -d n8n"]
620
      interval: 10s
621
      timeout: 5s
622
      retries: 5
623
    ports:
624
      - "127.0.0.1:5433:5432"
625
626
volumes:
627
  n8n_data:
628
    driver: local
629
  postgres_data:
630
    driver: local
631
```
632
633
### 16-3. バックアップディレクトリ作成
634
```bash
635
# バックアップ用ディレクトリ作成
636
mkdir -p /opt/docker-apps/n8n/backup
637
chmod 755 /opt/docker-apps/n8n/backup
638
```
639
640
### 16-4. n8n起動
641
```bash
642
# n8nコンテナ起動
643
docker-compose up -d
644
645
# 起動確認
646
docker-compose ps
647
```
648
649
**期待される結果**:
650
```
651
NAME            IMAGE               COMMAND                 STATUS          PORTS
652
n8n-app         n8nio/n8n:latest    "tini -- /docker-ent…"  Up              127.0.0.1:5678->5678/tcp
653
n8n-postgres    postgres:15-alpine  "docker-entrypoint.s…"  Up (healthy)    127.0.0.1:5433->5432/tcp
654
```
655
656
### 16-5. Apache HTTPSリバースプロキシ設定(n8n用)
657
658
#### n8n.artjunkie.co.jpのSSL証明書取得
659
```bash
660
# Let's Encrypt SSL証明書取得
661
sudo /usr/local/hestia/bin/v-add-letsencrypt-domain webdev n8n.artjunkie.co.jp
662
```
663
664
#### カスタムApache設定作成
665
```bash
666
# n8n用カスタム設定ディレクトリ作成
667
sudo mkdir -p /home/webdev/conf/web/n8n.artjunkie.co.jp
668
sudo chown webdev:webdev /home/webdev/conf/web/n8n.artjunkie.co.jp
669
```
670
671
**HTTP用リバースプロキシ設定**:
672
```bash
673
sudo nano /home/webdev/conf/web/n8n.artjunkie.co.jp/apache2.conf_n8n
674
```
675
676
内容:
677
```apache
678
# n8n Reverse Proxy - HTTP
679
ProxyPreserveHost On
680
ProxyRequests Off
681
682
# n8n メインアプリケーション
683
ProxyPass /rest/ http://localhost:5678/rest/
684
ProxyPassReverse /rest/ http://localhost:5678/rest/
685
686
# n8n Webhook
687
ProxyPass /webhook/ http://localhost:5678/webhook/
688
ProxyPassReverse /webhook/ http://localhost:5678/webhook/
689
ProxyPass /webhook-test/ http://localhost:5678/webhook-test/
690
ProxyPassReverse /webhook-test/ http://localhost:5678/webhook-test/
691
692
# n8n API
693
ProxyPass /api/ http://localhost:5678/api/
694
ProxyPassReverse /api/ http://localhost:5678/api/
695
696
# WebSocket対応(n8n Editor用)
697
ProxyPass /socket.io/ ws://localhost:5678/socket.io/
698
ProxyPassReverse /socket.io/ ws://localhost:5678/socket.io/
699
700
# ルートは最後に設定
701
ProxyPass / http://localhost:5678/
702
ProxyPassReverse / http://localhost:5678/
703
704
# ヘッダー設定
705
Header always set X-Forwarded-Proto "http"
706
Header always set X-Forwarded-Port "80"
707
```
708
709
**HTTPS用リバースプロキシ設定**:
710
```bash
711
sudo nano /home/webdev/conf/web/n8n.artjunkie.co.jp/apache2.ssl.conf_n8n
712
```
713
714
内容:
715
```apache
716
# n8n Reverse Proxy - HTTPS
717
ProxyPreserveHost On
718
ProxyRequests Off
719
720
# n8n メインアプリケーション
721
ProxyPass /rest/ http://localhost:5678/rest/
722
ProxyPassReverse /rest/ http://localhost:5678/rest/
723
724
# n8n Webhook
725
ProxyPass /webhook/ http://localhost:5678/webhook/
726
ProxyPassReverse /webhook/ http://localhost:5678/webhook/
727
ProxyPass /webhook-test/ http://localhost:5678/webhook-test/
728
ProxyPassReverse /webhook-test/ http://localhost:5678/webhook-test/
729
730
# n8n API
731
ProxyPass /api/ http://localhost:5678/api/
732
ProxyPassReverse /api/ http://localhost:5678/api/
733
734
# WebSocket対応(n8n Editor用・SSL)
735
ProxyPass /socket.io/ ws://localhost:5678/socket.io/
736
ProxyPassReverse /socket.io/ ws://localhost:5678/socket.io/
737
738
# ルートは最後に設定
739
ProxyPass / http://localhost:5678/
740
ProxyPassReverse / http://localhost:5678/
741
742
# SSL用ヘッダー設定
743
Header always set X-Forwarded-Proto "https"
744
Header always set X-Forwarded-Port "443"
745
RequestHeader set X-Forwarded-Proto "https"
746
RequestHeader set X-Forwarded-Port "443"
747
748
# n8n固有のヘッダー設定
749
Header always set X-Frame-Options "SAMEORIGIN"
750
Header always set X-Content-Type-Options "nosniff"
751
```
752
753
### 16-6. Apache設定反映
754
```bash
755
# Apache設定テスト
756
sudo apache2ctl configtest
757
758
# Apache再読み込み
759
sudo systemctl reload apache2
760
```
761
762
### 16-7. n8n HTTPS動作確認
763
764
#### コンテナ状態確認
765
```bash
766
cd /opt/docker-apps/n8n
767
docker-compose ps
768
docker-compose logs -f n8n
769
```
770
771
#### HTTPS接続テスト
772
```bash
773
# HTTPS接続確認
774
curl -I https://n8n.artjunkie.co.jp
775
776
# 期待されるレスポンス
777
# HTTP/2 200 
778
# server: nginx/1.x.x
779
# x-forwarded-proto: https
780
# x-forwarded-port: 443
781
```
782
783
#### ブラウザ確認
784
ブラウザで **https://n8n.artjunkie.co.jp** にアクセス
785
786
**期待される動作**:
787
- ✅ SSL証明書エラーなし
788
- ✅ n8nのセットアップ画面表示
789
- ✅ 管理者アカウント作成画面
790
791
### 16-8. n8n初期設定
792
793
1. **https://n8n.artjunkie.co.jp** にアクセス
794
2. **管理者アカウント作成**:
795
   - Email: admin@artjunkie.co.jp
796
   - パスワード: 強力なパスワード設定
797
   - 名前: N8N Administrator
798
3. **設定完了後**: ワークフロー作成開始可能
799
800
### 16-9. n8n追加設定
801
802
#### Webhook URLの確認
803
n8n内でWebhookノードを作成する際のURL:
804
```
805
https://n8n.artjunkie.co.jp/webhook/your-webhook-id
806
```
807
808
#### SMTP設定確認(管理画面)
809
Settings → Users & Settings → SMTP で以下を確認:
810
- Host: localhost
811
- Port: 587
812
- Username: admin@artjunkie.co.jp
813
- Security: STARTTLS
814
815
### 16-10. n8nメンテナンス
816
817
#### バックアップ
818
```bash
819
# n8nデータバックアップ
820
cd /opt/docker-apps/n8n
821
docker-compose exec n8n n8n export:workflow --backup --output=/backup/workflows-$(date +%Y%m%d).json
822
823
# データベースバックアップ
824
docker-compose exec postgres pg_dump -U n8n_user n8n > backup/n8n-db-$(date +%Y%m%d).sql
825
```
826
827
#### 更新
828
```bash
829
# n8n更新
830
cd /opt/docker-apps/n8n
831
docker-compose pull
832
docker-compose up -d
833
```
834
835
**アクセス情報**:
836
- **Dify管理画面**: https://d.aj.gd/console
837
- **Difyアプリ**: https://d.aj.gd/apps  
838
- **n8n管理画面**: https://n8n.artjunkie.co.jp
839
- **HestiaCP**: https://websrv.artjunkie.co.jp:8083