LibreLogin, Velocity Network Setup
Set up librelogin velocity authentication for proxy networks. Covers Velocity integration, database config, login flow, and session management across backend servers.
Why LibreLogin on Velocity
AuthMe works well on single servers, but on a Velocity proxy network it becomes awkward. Each backend server runs its own AuthMe instance, players must log in again when switching servers, and session data does not sync across backends. LibreLogin is a modern authentication plugin built specifically for proxy networks. A librelogin velocity setup handles registration and login at the proxy level, so players authenticate once and move freely between all backend servers.
For single-server authentication without a proxy, see our AuthMe login security guide instead.
Installing LibreLogin on Velocity
LibreLogin installs on the Velocity proxy, not on individual backend servers. Download the Velocity build from the LibreLogin GitHub releases and place it in your Velocity plugins folder:
velocity/plugins/
LibreLogin.jar
Restart Velocity. LibreLogin generates its configuration in velocity/plugins/librelogin/.
Core Configuration
Open plugins/librelogin/config.conf (LibreLogin uses HOCON format):
# config.conf (LibreLogin on Velocity)
limbo = ["limbo"] # server(s) where unauthenticated players wait
lobby = ["lobby"] # server(s) players go to after login
auto-login = true # session persistence across reconnects
session-timeout = 1440 # minutes before session expires (24 hours)
migration {
old-database = "AUTHME" # migrate from AuthMe if applicable
old-database-path = ""
}
The limbo server is where players sit before they authenticate. It should be a lightweight void world that does not load unnecessary chunks. The lobby server is where players land after successful login. This librelogin velocity setup keeps unauthenticated players quarantined from your actual game servers.
Database Configuration
LibreLogin supports SQLite, MySQL, MariaDB, and PostgreSQL. For a proxy network, MySQL or MariaDB is the right choice because all Velocity instances can share one database:
# config.conf - Database section
database {
type = "MYSQL"
mysql {
host = "localhost"
port = 3306
database = "librelogin"
user = "librelogin"
password = "strong_password_here"
max-connections = 10
}
}
Create the database and user in MySQL before starting Velocity:
CREATE DATABASE librelogin CHARACTER SET utf8mb4;
CREATE USER 'librelogin'@'localhost' IDENTIFIED BY 'strong_password_here';
GRANT ALL PRIVILEGES ON librelogin.* TO 'librelogin'@'localhost';
FLUSH PRIVILEGES;
For help with MySQL setup and migration, see the SQLite to MySQL migration guide.
Velocity Configuration
Your velocity.toml needs the limbo and lobby servers defined in the server list:
# velocity.toml
[servers]
limbo = "127.0.0.1:25566"
lobby = "127.0.0.1:25567"
survival = "127.0.0.1:25568"
creative = "127.0.0.1:25569"
try = ["limbo"] # send new connections to limbo first
Set try to your limbo server so every connecting player lands there before authenticating. The librelogin velocity setup intercepts the connection, shows the login prompt, and forwards authenticated players to the lobby.
Session Management
LibreLogin's session system remembers authenticated players so they do not have to log in every time they reconnect. Sessions are tied to the player's IP address and username:
auto-login = true
session-timeout = 1440 # 24 hours in minutes
ip-limit = 3 # max accounts per IP
If a player reconnects from the same IP within the session timeout, they skip the login screen and go directly to the lobby. Set ip-limit to prevent alt account abuse. A value of 3 is reasonable for households sharing an IP.
Player Commands
LibreLogin provides standard authentication commands that work from any server in the network:
/register <password> <password>
/login <password>
/changepassword <old> <new>
/premium # link premium account for auto-login
The /premium command lets players with paid Minecraft accounts skip authentication entirely by verifying their session token with Mojang. This is one of LibreLogin's advantages over AuthMe, seamless support for mixed cracked and premium players on the same network.
Migrating from AuthMe
If you are moving from per-server AuthMe to proxy-level LibreLogin, the migration config imports existing password hashes:
migration {
old-database = "AUTHME"
old-database-path = "/path/to/AuthMe/authme.db"
}
LibreLogin reads the AuthMe SQLite database, converts the password hashes, and imports all accounts. Players keep their existing passwords. Remove AuthMe from all backend servers after migration to avoid conflicts.
Summary
A librelogin velocity setup centralizes authentication at the proxy level, giving players a single login that works across all backend servers. Install LibreLogin on Velocity, configure limbo and lobby servers, connect a MySQL database, and set session timeouts. For networks migrating from AuthMe, the built-in migration tool preserves all existing accounts and passwords.
See it live: Astroworld MC, IP play.astroworldmc.com, Java + Bedrock.