first commit
This commit is contained in:
53
.env
Normal file
53
.env
Normal file
@@ -0,0 +1,53 @@
|
||||
# Reactive Resume public URL behind Nginx Proxy Manager.
|
||||
TZ=Asia/Shanghai
|
||||
APP_URL=https://me.huijutec.cn
|
||||
|
||||
# Local debug access only: http://127.0.0.1:3003
|
||||
LOCAL_APP_PORT=3003
|
||||
|
||||
# PostgreSQL.
|
||||
POSTGRES_DB=reactive_resume
|
||||
POSTGRES_USER=reactive_resume
|
||||
POSTGRES_PASSWORD=S47LNqOvKzDTgGPo9C26LWf5
|
||||
DATABASE_URL=postgresql://reactive_resume:S47LNqOvKzDTgGPo9C26LWf5@postgres:5432/reactive_resume
|
||||
|
||||
# Generated with: openssl rand -hex 32
|
||||
AUTH_SECRET=9f27ca158d1c97d58bed21c8c8d8819e3c81111418682972e5f16281ea4ff0c8
|
||||
|
||||
# Optional email/auth/storage/AI settings can be enabled later.
|
||||
BETTER_AUTH_API_KEY=
|
||||
GOOGLE_CLIENT_ID=
|
||||
GOOGLE_CLIENT_SECRET=
|
||||
GITHUB_CLIENT_ID=
|
||||
GITHUB_CLIENT_SECRET=
|
||||
LINKEDIN_CLIENT_ID=
|
||||
LINKEDIN_CLIENT_SECRET=
|
||||
OAUTH_PROVIDER_NAME=
|
||||
OAUTH_CLIENT_ID=
|
||||
OAUTH_CLIENT_SECRET=
|
||||
OAUTH_DISCOVERY_URL=
|
||||
OAUTH_AUTHORIZATION_URL=
|
||||
OAUTH_TOKEN_URL=
|
||||
OAUTH_USER_INFO_URL=
|
||||
OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTS=
|
||||
OAUTH_SCOPES=
|
||||
SMTP_HOST=
|
||||
SMTP_PORT=587
|
||||
SMTP_USER=
|
||||
SMTP_PASS=
|
||||
SMTP_FROM=Reactive Resume <noreply@me.huijutec.cn>
|
||||
SMTP_SECURE=false
|
||||
S3_ACCESS_KEY_ID=
|
||||
S3_SECRET_ACCESS_KEY=
|
||||
S3_REGION=us-east-1
|
||||
S3_ENDPOINT=
|
||||
S3_BUCKET=
|
||||
S3_FORCE_PATH_STYLE=false
|
||||
REDIS_URL=
|
||||
ENCRYPTION_SECRET=
|
||||
CLOUDFLARE_ACCOUNT_ID=
|
||||
CLOUDFLARE_API_TOKEN=
|
||||
FLAG_DISABLE_SIGNUPS=false
|
||||
FLAG_DISABLE_EMAIL_AUTH=false
|
||||
FLAG_DISABLE_IMAGE_PROCESSING=false
|
||||
FLAG_ALLOW_UNSAFE_AI_BASE_URL=false
|
||||
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
data/
|
||||
*.log
|
||||
.DS_Store
|
||||
36
README.md
Normal file
36
README.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Reactive Resume + frpc
|
||||
|
||||
该目录使用 Docker Compose 启动 Reactive Resume,并通过 frpc 把容器内的 `reactive-resume:3000` 映射到远端 `82.157.255.195:10003`。Nginx Proxy Manager 已将 `https://me.huijutec.cn` 反代到该远端端口。
|
||||
|
||||
## 文件
|
||||
|
||||
- `compose.yml`: Docker Compose 编排,包含 Postgres、Reactive Resume、frpc。
|
||||
- `.env`: Reactive Resume 环境变量和本地调试端口。
|
||||
- `frpc.yaml`: frpc 客户端配置,远端端口为 `10003`。
|
||||
- `reactive_resume_data`: Reactive Resume 本地上传文件持久化 Docker 命名卷。
|
||||
|
||||
## 启动
|
||||
|
||||
```bash
|
||||
docker compose -f compose.yml up -d
|
||||
```
|
||||
|
||||
## 查看状态
|
||||
|
||||
```bash
|
||||
docker compose -f compose.yml ps
|
||||
docker compose -f compose.yml logs -f reactive-resume
|
||||
docker compose -f compose.yml logs -f frpc
|
||||
```
|
||||
|
||||
## 访问
|
||||
|
||||
- 公网访问: `https://me.huijutec.cn`
|
||||
- 本机调试: `http://127.0.0.1:3003`
|
||||
|
||||
## 更新
|
||||
|
||||
```bash
|
||||
docker compose -f compose.yml pull
|
||||
docker compose -f compose.yml up -d
|
||||
```
|
||||
65
compose.yml
Normal file
65
compose.yml
Normal file
@@ -0,0 +1,65 @@
|
||||
name: reactive-resume
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
networks:
|
||||
- resume_net
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
reactive-resume:
|
||||
image: amruthpillai/reactive-resume:latest
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- "127.0.0.1:${LOCAL_APP_PORT}:3000"
|
||||
volumes:
|
||||
- reactive_resume_data:/app/data
|
||||
networks:
|
||||
- resume_net
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"node",
|
||||
"-e",
|
||||
"fetch('http://127.0.0.1:3000/api/health').then((r) => { if (!r.ok) process.exit(1); }).catch(() => process.exit(1));",
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
|
||||
frpc:
|
||||
image: fatedier/frpc:v0.68.0
|
||||
restart: unless-stopped
|
||||
command: ["-c", "/etc/frp/frpc.yaml"]
|
||||
volumes:
|
||||
- ./frpc.yaml:/etc/frp/frpc.yaml:ro
|
||||
networks:
|
||||
- resume_net
|
||||
depends_on:
|
||||
reactive-resume:
|
||||
condition: service_healthy
|
||||
|
||||
networks:
|
||||
resume_net:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
reactive_resume_data:
|
||||
17
frpc.yaml
Normal file
17
frpc.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
serverAddr: "82.157.255.195"
|
||||
serverPort: 7000
|
||||
|
||||
auth:
|
||||
method: "token"
|
||||
token: "en.xjtu.edu.cn"
|
||||
|
||||
transport:
|
||||
poolCount: 5
|
||||
heartbeatTimeout: -1
|
||||
|
||||
proxies:
|
||||
- name: "reactive-resume-me"
|
||||
type: "tcp"
|
||||
localIP: "reactive-resume"
|
||||
localPort: 3000
|
||||
remotePort: 10003
|
||||
BIN
参考简历/2024_CSC_王志博-简历-中文.docx
Normal file
BIN
参考简历/2024_CSC_王志博-简历-中文.docx
Normal file
Binary file not shown.
BIN
参考简历/王志博-简历-中文.docx
Normal file
BIN
参考简历/王志博-简历-中文.docx
Normal file
Binary file not shown.
Reference in New Issue
Block a user