How should I set up my Dev server?
New server dev here, trying to figure out how to set up my servers/worlds.
This is likely a somewhat common setup, but here's my planned server set up based on my current limited understanding:
Server 1: Lobby
Server 2: Player worlds. Main survival world, resource worlds, spawn world etc.
Server 3: Dev, copy of Server 2 stuff for any dev work.
This will be Paper btw. Server 1 and 2 would be connected through Velocity. Hopefully 3 too but not sure how it works. Multiverse manages the multiple worlds within a single server. Server 1 doesn't need any plugin data from Server 2, such as ranks etc. Will be a separate space.
The idea is that I want to be able to code on my local machine, push it to a git repo in the dev branch, then have that code be integrated into the dev server. Whether that's some automated scripts or whatever.
Then, when testing & stuff is done, merge the dev branch with the master branch, and have that update & restart server 2. Then have a new copy of the new server 2 created, to become the new server 3 dev environment. I've seen some plugins to help with the git stuff but I could also just make scripts myself for it.
Then I think you have all this on a dedicated or vp server (would also appreciate any advice here).
Questions:
- does this make sense? Have I missed anything major here?
- Will having velocity in this set up drastically reduce the choice of plugins I can use on Server 2, because of "compatibility" concerns? To me it doesn't make sense that a plugin not be compatible, since we're not sharing plugin data across servers?
- if you know of any solutions to the git stuff I'd be interested to hear. The MineCICD plugin looks promising on spigot for example.
Thanks very much in advance for any help 👍
23 Replies
Thanks for asking your question!
Make sure to provide as much helpful information as possible such as logs/what you tried and what your exact issue is
Make sure to mark solved when issue is solved!!!
/close
!close
!solved
!answered
Requested by plasmatm#0
Server 1 does not make a lot of sense, since you will always join Server 2 and without Server 3, you can just do normal backups.
If you want plugins on all server(connected), you need to install them on your proxy(bungeecord/velocity)
Plugins you upload for example on Server 2, do not connect to other server and do not need any velocity or other support (normal plugins work)
So are "lobby" servers not usually done through velocity? I want the lobby server to still be up if the main server (server 2) is down, for maintainance/an update etc.
Cool thanks that's a big bit of confusion I had 👍
I mean lobby server possible, so you need 4 server in total with backup/dev-server (server3)
1 Server for Velocity/Bungeecord
And 3 other to connect/play on
(I just often see no reason for a lobby, since it does not really get used or explored)
So Velocity needs it own server?
For me a lobby is for when the main server is down. say, during a restart
Ye
Do you need to put the plugins on this server then?
you should use a limbo server for that
a server software like NanoLimbo - https://github.com/Nan1t/NanoLimbo
Along with LimboAPI - https://github.com/Elytrium/LimboAPI
And LimboReconnect - https://github.com/Elytrium/LimboReconnect
oh thank you, i'll look into that! guess velocity isn't really necessary then
this is the setup i currently have, and whenever I restart the server I stay in the limbo, and get reconnected instantly when the server gets back up
Yeah true, for a one-server setup
wait no
yeah only other consideration I had was how you could maybe optimise performance by spreading worlds across multiple servers but that might be overkill
NanoLimbo is a java Minecraft server software
Velocity is used to connect the limbo server and the main server
sure, you could use multipaper for that - https://multipaper.io/
MultiPaper
Run a single world across multiple Minecraft servers
this is all very helpful, thanks!
Some good servers run really well with multiple servers for one world, one example is donut smp
even if someone tries to lag out the entire server, they're only lagging the server they're currently in
outside players are unaffected
If he want 1 lobby sever, 1 normal and 1 dev
Velocity is still needed
for my dev environment I just create the servers on my own machine
the only things i change when copy pasting the whole thing over to my vps is the ips for the backend servers in velocity.toml
I don't need to change anything else because I don't need to use online database and prefers offline db because I only have a limbo and main server in the list
So I could do this all through 1 dedicated server right? And just allocate cores to create these virtual servers on the dedicated server
hmh
1 dedicated server is enough(depening on the specs)
Why you need that much performance ?
I don't really, i just meant for example having survival "resource" worlds (extra worlds just for collecting resources) on a separate server, if needed or if it could help performance. More just me thinking ahead to be honest
Then you will use something like that (like for farming worlds or something)
https://www.spigotmc.org/resources/husksync-1-16-1-20-synchronize-player-inventories-data-cross-server.97144/
Oh interesting, thank you!