
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
http://localhost:8080
๐ Admin Credentials
The admin credentials and the panel link are printed in the logs during first setup.
๐งพ Default Credentials:
- Email:
[email protected]
- Password:
admin@123+
These are controlled via environment variables in docker-compose.yml
.
๐ Retrieve Login Info
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
๐ License
MIT โ free to use, fork, or modify.