Xboard/docs/en/installation/1panel.md
2025-01-16 00:55:00 +08:00

4.1 KiB

Quick Deployment Guide for 1Panel

This guide explains how to deploy Xboard using 1Panel.

1. Environment Preparation

Install 1Panel:

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && \
sudo bash quick_start.sh

2. Environment Configuration

  1. Install from App Store:

    • OpenResty (any version)
      • ⚠️ Check "External Port Access" to open firewall
    • MySQL 5.7 (Use MariaDB for ARM architecture)
  2. Create Database:

    • Database name: xboard
    • Username: xboard
    • Access rights: All hosts (%)
    • Save the database password for installation

3. Deployment Steps

  1. Add Website:

    • Go to "Website" > "Create Website" > "Reverse Proxy"
    • Domain: Enter your domain
    • Code: xboard
    • Proxy address: 127.0.0.1:7001
  2. Configure Reverse Proxy:

location ^~ / {
    proxy_pass http://127.0.0.1:7001;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Real-PORT $remote_port;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header Scheme $scheme;
    proxy_set_header Server-Protocol $server_protocol;
    proxy_set_header Server-Name $server_name;
    proxy_set_header Server-Addr $server_addr;
    proxy_set_header Server-Port $server_port;
    proxy_cache off;
}
  1. Install Xboard:
# Enter site directory
cd /opt/1panel/apps/openresty/openresty/www/sites/xboard/index

# Install Git (if not installed)
## Ubuntu/Debian
apt update && apt install -y git
## CentOS/RHEL
yum update && yum install -y git

# Clone repository
git clone -b compose-new --depth 1 https://github.com/cedar2025/Xboard ./

# Configure Docker Compose
  1. Edit docker-compose.yml:
services:
  web:
    image: ghcr.io/cedar2025/xboard:latest
    volumes:
      - ./.docker/.data/redis/:/data/
      - ./.env:/www/.env
      - ./.docker/.data/:/www/.docker/.data
      - ./storage/logs:/www/storage/logs
      - ./storage/theme:/www/storage/theme
    environment:
      - docker=true
    depends_on:
      - redis
    command: php artisan octane:start --host=0.0.0.0 --port=7001
    restart: on-failure
    ports:
      - 7001:7001
    networks:
      - 1panel-network

  horizon:
    image: ghcr.io/cedar2025/xboard:latest
    volumes:
      - ./.docker/.data/redis/:/data/
      - ./.env:/www/.env
      - ./.docker/.data/:/www/.docker/.data
      - ./storage/logs:/www/storage/logs
    restart: on-failure
    command: php artisan horizon
    networks:
      - 1panel-network
    depends_on:
      - redis

  redis:
    image: redis:7-alpine
    command: redis-server --unixsocket /data/redis.sock --unixsocketperm 777 --save 900 1 --save 300 10 --save 60 10000
    restart: unless-stopped
    networks:
      - 1panel-network
    volumes:
      - ./.docker/.data/redis:/data

networks:
  1panel-network:
    driver: bridge
  1. Initialize Installation:
# Install dependencies and initialize
docker compose run -it --rm web php artisan xboard:install

⚠️ Important Configuration Notes:

  1. Database Configuration

    • Database Host: Enter mysql (not localhost or 127.0.0.1)
    • Database Port: 3306
    • Database Name: xboard (the database created earlier)
    • Database User: xboard (the user created earlier)
    • Database Password: Enter the password saved earlier
  2. Redis Configuration

    • Choose to use built-in Redis
    • No additional configuration needed
  3. Administrator Information

    • Save the admin credentials displayed after installation
    • Note down the admin panel access URL

After configuration, start the services:

docker compose up -d
  1. Start Services:
docker compose up -d

4. Version Update

docker compose pull && \
docker compose run -it --rm web php artisan xboard:update && \
docker compose up -d

Important Notes

  • ⚠️ Ensure firewall is enabled to prevent port 7001 exposure to public
  • Service restart is required after code modifications
  • SSL certificate configuration is recommended for secure access