495 words
2 minutes
๐ŸŒ V2ray VPN Reseller Panel in Docker (v2board)

V2Board Dockerized Deployment with PHP-FPM + Nginx + Supervisor#

Running a scalable, production-ready Laravel-based app like V2Board requires more than just PHP โ€” it demands orchestration. This Dockerized stack offers a lightweight, secure, and feature-rich environment using PHP 8.2 (FPM), Nginx, Redis, MariaDB, and Supervisor โ€” all running on Alpine Linux.


๐Ÿ” About V2Board#

V2Board is a modern, feature-rich open-source subscription management panel designed for proxy services like Shadowsocks, V2Ray, and Trojan.

It provides a complete billing and user dashboard solution for ISPs, resellers, and privacy-focused network providers.

โœจ Key Features:#

  • ๐Ÿงพ Subscription Billing System (plans, pricing, and orders)
  • ๐ŸŒ Multi-protocol Support (V2Ray, Shadowsocks, Trojan)
  • ๐Ÿ‘ฅ User Management (self-registration, usage stats, invite system)
  • ๐Ÿ’ณ Integrated Payment Gateways (Alipay, Stripe, etc.)
  • ๐Ÿ“ˆ Traffic Monitoring (user stats, server stats, real-time)
  • ๐ŸŒ Multi-language UI with clean frontend
  • ๐Ÿ”Œ Node Management (connect multiple backend nodes easily)

V2Board is actively developed and widely used in privacy and VPN-related hosting environments. Itโ€™s written in PHP + Laravel, making it easy to customize and scale.


๐Ÿ“ฆ Stack Features#

  • ๐Ÿณ PHP 8.2 FPM with Laravel + V2Board
  • ๐Ÿ” Supervisor-managed services (PHP-FPM, Nginx, Laravel Scheduler)
  • โš™๏ธ Composer pre-installed and ready
  • ๐Ÿ”„ Auto-run Laravel schedule:run loop
  • ๐Ÿงฐ Pre-bundled extensions: pdo_mysql, redis, gd, imagick, intl, soap, bcmath, and more
  • ๐Ÿ” Secure Alpine base running as www-data
  • ๐Ÿง  Auto v2board:install if .env is missing

โš™๏ธ Docker Compose Setup#

services:
  web:
    image: ghcr.io/nooblk-98/v2board-docker:latest
    container_name: v2board
    environment:
      ADMIN_MAIL: [email protected]
      ADMIN_PASSWORD: admin@123+
    ports:
      - "8080:80"
    depends_on:
      - mariadb
      - redis
    volumes:
      - web_data:/var/www/html

  mariadb:
    image: mariadb:10
    container_name: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: v2board123+
      MYSQL_DATABASE: v2board
      MYSQL_USER: v2boarduser
      MYSQL_PASSWORD: "v2boarduser123"
    volumes:
      - db_data:/var/lib/mysql
    ports:
      - "3306:3306"

  redis:
    image: redis:latest
    container_name: redis

volumes:
  db_data:
  web_data:

๐ŸŒ Deployment Guide#

๐Ÿ›  : Update Enviroment Variables in Compose#

      ADMIN_MAIL: [email protected]
      ADMIN_PASSWORD: admin@123+
    environment:
      MYSQL_ROOT_PASSWORD: v2board123+
      MYSQL_DATABASE: v2board
      MYSQL_USER: v2boarduser
      MYSQL_PASSWORD: "v2boarduser123"

๐Ÿ›  : Start the Stack#

docker compose up -d

๐Ÿ›  : Fix Permissions (optional)#

If Laravel cannot write to storage/ or bootstrap/cache, run:

docker exec -u root v2board chown -R www-data:www-data /var/www/html

๐ŸŒ Step 3: Access the Web UI#

UI

http://localhost:8080

UI


๐Ÿ” Admin Credentials#

The admin credentials and the panel link are printed in the logs during first setup.

๐Ÿงพ Default Credentials:#

These are controlled via environment variables in docker-compose.yml.

๐Ÿ” Retrieve Login Info#

Nginx Proxy Manager UI

docker logs v2board | grep -i admin

Example log output:

Admin registered. Email: [email protected], Password: admin@123+
Visit http(s)://your-domain/ff8f4b24 to access the admin panel.

๐Ÿ” Replace your-domain with your actual domain or server IP.


๐Ÿ”„ Reset Credentials#

To reset the installation and re-trigger v2board:install:

docker exec -it v2board rm -f /var/www/html/.env
docker restart v2board

๐Ÿงฉ Base Image Details#

Built on ghcr.io/nooblk-98/php-docker-nginx:php82, this image includes:

  • ๐Ÿง  PHP 8.2 (FPM) on Alpine Linux

  • ๐ŸŒ Nginx pre-configured for /public root

  • ๐Ÿ” Supervisor to manage services like scheduler and PHP-FPM

  • ๐Ÿงฐ PHP Extensions:

    • pdo_mysql, redis, curl, mbstring, gd, imagick, soap, intl, bcmath, opcache
  • ๐Ÿš€ Supports both ARM64 (M1/M2) and AMD64 systems


๐Ÿ‘จโ€๐Ÿ’ป Maintainer#

Liyanage L.S. ๐Ÿ“ฌ [email protected]


๐Ÿ”ง For more details visit my repository source in github#

nooblk-98
/
v2board-docker
Waiting for api.github.com...
00K
0K
0K
Waiting...

๐Ÿ“„ License#

MIT โ€” free to use, fork, or modify.


๐ŸŒ Credits#

๐ŸŒ V2ray VPN Reseller Panel in Docker (v2board)
https://www.itsnooblk.com/posts/v2board-docker/
Author
Lahiru Sandaruwan Liyanage
Published at
2025-06-06
License
MIT License