Complete installation guide for Bicrypto on Virtualmin servers
For additional support, visit our Support Center
This guide will walk you through setting up Bicrypto on a Virtualmin-managed server using Apache. The steps include uploading the Bicrypto zip file to your public_html folder, configuring Apache directives, and running the automated installer script.
Ensure you have completed the Server Requirements checklist before proceeding.
Download the Bicrypto zip file from your Envato account before proceeding with the installation.
Navigate to public_html in your Virtualmin File Manager (or via SFTP/SSH) and upload the Bicrypto zip file.
Once uploaded, right-click on the Bicrypto zip file and choose Extract (or use SSH command unzip <filename.zip>).
If you see a prompt asking to overwrite existing files, click Yes. This ensures all relevant files are updated.
In Virtualmin, navigate to Web Configuration → Configure SSL Website → Edit Directives.
If you are using NGINX instead, follow the NGINX Configuration guide and then continue from Step 7.
After the line DirectoryIndex, add the following configurations optimized for [id] parameter handling and large i18n headers. Then, click Save and Close.
Protocols h2 http/1.1
ProxyPreserveHost On
# Header size limits for i18n locales (prevents 502 errors)
LimitRequestFieldSize 65536
ResponseFieldSize 65536
LimitRequestLine 32768
# Enhanced timeouts for [id] parameter queries
KeepAlive On
KeepAliveTimeout 30
MaxKeepAliveRequests 1000
ProxyTimeout 300
# Compression including JSON for API responses
AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript application/json
# API Documentation
ProxyPass /api/docs http://localhost:4000/api/docs
ProxyPassReverse /api/docs http://localhost:4000/api/docs
# Main API routes with enhanced settings
ProxyPass /api http://localhost:4000/api retry=0
ProxyPassReverse /api http://localhost:4000/api
# WebSocket support
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule ^/api/(.*) ws://localhost:4000/api/$1 [P,L]
# Frontend
ProxyPass / http://localhost:3000/ retry=0
ProxyPassReverse / http://localhost:3000/
# Enhanced proxy settings for [id] parameter handling
<Proxy "http://localhost:4000/">
ProxySet connectiontimeout=300
ProxySet ttl=300
ProxySet retry=0
ProxySet max=10000
</Proxy>
<Proxy "http://localhost:3000/">
ProxySet connectiontimeout=300
ProxySet ttl=300
ProxySet retry=0
</Proxy>
Return to Web Configuration → Configure Website → Edit Directives and repeat the same configuration from Step 5. Save and close.
Open File Manager, right-click on any file or folder, then choose Copy, followed by Copy Path to Clipboard. You'll need this path shortly.
Scroll down in the left sidebar of Virtualmin (or the top menu) to find the Root Terminal option. Click to open it.
Paste the path you copied in step 7 to enter the V5 folder. For example:
cd /path/to/public_html
Replace /path/to/public_html with your actual path from the clipboard.
Install dos2unix, convert the script if necessary, and run installer.sh:
sudo apt install dos2unix
dos2unix installer.sh
chmod +x installer.sh
sudo bash installer.sh
The installer will ask for your site URL. Enter it in the format https://domain.com without a trailing slash. It will also prompt for:
localhost)3306 for MySQL)
After the installer completes, it will display default credentials for the super admin user.
Update the super admin email via phpMyAdmin or another database tool (e.g., TablePlus) for security.
Click the X to close the Root Terminal. Then return to your Virtualmin interface to edit the virtual server if needed.
In Edit Virtual Server, if you see Quotas and Limits, set both Total and Server quota to Unlimited. If you do not see this, you may skip this step.
Follow these steps to ensure proper file ownership:
root:root
Below the File Manager, you'll see a User Terminal. Click to open it, then navigate again to public_html:
cd public_html
Run pnpm install to install dependencies for V5 Exchange Provider. If prompted for confirmation, press Enter.
pnpm install
Finally, start the V5 Exchange Provider application:
pnpm start
Wait about 20 seconds for the build and server to initialize. Your site should then be accessible at the domain you configured.
pnpm stop - Stop the applicationpnpm updator - Update and restartpnpm build:all - Build frontend & backendpm2 status - Check application statusNEXT_PUBLIC_LANGUAGES to essential onescurl -I http://localhost:4000/api/health/var/log/apache2/error.logIf experiencing "header size over limit" errors, reduce your languages to essential ones:
NEXT_PUBLIC_LANGUAGES="en,es,fr,de,it,pt,ru,ar,ja,ko,hi,tr"
frontend/next.config.jsnpm run build && pm2 restart frontendCongratulations! You've successfully installed V5 Exchange Provider on your Virtualmin server. Your application should now be accessible via your configured domain.