Remove Pufferpanel and add Nix-Minecraft properly

This commit is contained in:
Jimbo 2024-08-30 14:15:38 -04:00
parent f8907ae96e
commit b6f1cb5259
13 changed files with 45 additions and 221 deletions

View file

@ -180,15 +180,15 @@
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1724722703, "lastModified": 1724982042,
"narHash": "sha256-5xhQLp0tLY/1nWlcU5uYsCUawxcwqEzAGi0b8wAQKxA=", "narHash": "sha256-IwHIZYo1fyloQxvBy15QVzMALNEa7Jo6tzXVJj7U9Ws=",
"owner": "Infinidoge", "owner": "JimmJam",
"repo": "nix-minecraft", "repo": "nix-minecraft",
"rev": "f74de364f4354e509cc12399de4d4df834a0a45f", "rev": "32b632e29b141cc4c441b6e5504d33a9564dc3e6",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "Infinidoge", "owner": "JimmJam",
"repo": "nix-minecraft", "repo": "nix-minecraft",
"type": "github" "type": "github"
} }

View file

@ -81,13 +81,18 @@
fsType = "none"; fsType = "none";
options = [ "bind" ]; options = [ "bind" ];
}; };
"/var/lib/mastodon" = {
device = "/export/JimboNFS/System/var/lib/mastodon";
fsType = "none";
options = [ "bind" ];
};
"/var/lib/private/pufferpanel/servers" = { "/var/lib/private/pufferpanel/servers" = {
device = "/export/JimboNFS/System/var/lib/pufferpanel/servers"; device = "/export/JimboNFS/System/var/lib/pufferpanel/servers";
fsType = "none"; fsType = "none";
options = [ "bind" ]; options = [ "bind" ];
}; };
"/var/lib/mastodon" = { "/srv/minecraft" = {
device = "/export/JimboNFS/System/var/lib/mastodon"; device = "/export/JimboNFS/System/srv/minecraft";
fsType = "none"; fsType = "none";
options = [ "bind" ]; options = [ "bind" ];
}; };

View file

@ -31,7 +31,6 @@
./server/nfs.nix ./server/nfs.nix
./server/nginx.nix ./server/nginx.nix
./server/owncast.nix ./server/owncast.nix
./server/pufferpanel.nix
./server/minecraft ./server/minecraft
./server/tandoor.nix ./server/tandoor.nix
./server/vaultwarden.nix ./server/vaultwarden.nix

View file

@ -2,11 +2,10 @@
imports = [ imports = [
inputs.nix-minecraft.nixosModules.minecraft-servers inputs.nix-minecraft.nixosModules.minecraft-servers
./servers/velocity.nix ./servers/velocity.nix
#./servers/viaproxy.nix
./servers/dewdemolisher.nix ./servers/dewdemolisher.nix
./servers/johnside.nix ./servers/johnside.nix
./servers/blockworld.nix ./servers/blockworld.nix
#./servers/beta.nix ./servers/uberbeta.nix
]; ];
nixpkgs.overlays = [ inputs.nix-minecraft.overlay ]; nixpkgs.overlays = [ inputs.nix-minecraft.overlay ];

View file

@ -1,9 +1,4 @@
## Notes
############################################################
# +------------------------------------------------------+ #
# | Notes | #
# +------------------------------------------------------+ #
############################################################
# This is the config file for EssentialsX. # This is the config file for EssentialsX.
# This config was generated for version 2.21.0-dev+107-7b02d22. # This config was generated for version 2.21.0-dev+107-7b02d22.
@ -17,11 +12,7 @@
# If you need help, you can join the EssentialsX community: https://essentialsx.net/community.html # If you need help, you can join the EssentialsX community: https://essentialsx.net/community.html
############################################################ # Essentials (Global)
# +------------------------------------------------------+ #
# | Essentials (Global) | #
# +------------------------------------------------------+ #
############################################################
# A color code between 0-9 or a-f. Set to 'none' to disable. # A color code between 0-9 or a-f. Set to 'none' to disable.
# In 1.16+ you can use hex color codes here as well. (For example, #613e1d is brown). # In 1.16+ you can use hex color codes here as well. (For example, #613e1d is brown).
@ -760,11 +751,7 @@ max-itemlore-lines: 10
# This uses the public GitHub API and no identifying information is sent or stored. # This uses the public GitHub API and no identifying information is sent or stored.
update-check: true update-check: true
############################################################ ## Homes
# +------------------------------------------------------+ #
# | Homes | #
# +------------------------------------------------------+ #
############################################################
# Allows people to set their bed during the day. # Allows people to set their bed during the day.
# This setting has no effect in Minecraft 1.15+, as Minecraft will always allow the player to set their bed location during the day. # This setting has no effect in Minecraft 1.15+, as Minecraft will always allow the player to set their bed location during the day.
@ -804,11 +791,7 @@ spawn-if-no-home: true
# Should players be asked to provide confirmation for homes which they attempt to overwrite? # Should players be asked to provide confirmation for homes which they attempt to overwrite?
confirm-home-overwrite: false confirm-home-overwrite: false
############################################################ ## Economy
# +------------------------------------------------------+ #
# | Economy | #
# +------------------------------------------------------+ #
############################################################
# For more information, visit http://wiki.ess3.net/wiki/Essentials_Economy # For more information, visit http://wiki.ess3.net/wiki/Essentials_Economy
@ -873,11 +856,7 @@ show-zero-baltop: true
# For 1'234,50 use fr-ch # For 1'234,50 use fr-ch
#currency-symbol-format-locale: en-US #currency-symbol-format-locale: en-US
############################################################ ## Help
# +------------------------------------------------------+ #
# | Help | #
# +------------------------------------------------------+ #
############################################################
# Show other plugins commands in help. # Show other plugins commands in help.
non-ess-in-help: true non-ess-in-help: true
@ -888,11 +867,7 @@ non-ess-in-help: true
# You can use negative permissions to remove access to just a single plugins help if the following is enabled. # You can use negative permissions to remove access to just a single plugins help if the following is enabled.
hide-permissionless-help: true hide-permissionless-help: true
############################################################ ## EssentialsX Chat
# +------------------------------------------------------+ #
# | EssentialsX Chat | #
# +------------------------------------------------------+ #
############################################################
# You need to install EssentialsX Chat for this section to work. # You need to install EssentialsX Chat for this section to work.
# See https://essentialsx.net/wiki/Module-Breakdown.html for more information. # See https://essentialsx.net/wiki/Module-Breakdown.html for more information.
@ -955,11 +930,7 @@ chat:
# Whether chat questions should be enabled or not. # Whether chat questions should be enabled or not.
question-enabled: true question-enabled: true
############################################################ ## EssentialsX Protect
# +------------------------------------------------------+ #
# | EssentialsX Protect | #
# +------------------------------------------------------+ #
############################################################
# You need to install EssentialsX Protect for this section to work. # You need to install EssentialsX Protect for this section to work.
# See https://essentialsx.net/wiki/Module-Breakdown.html for more information. # See https://essentialsx.net/wiki/Module-Breakdown.html for more information.
@ -1103,11 +1074,7 @@ protect:
thunder: false thunder: false
lightning: false lightning: false
############################################################ ## EssentialsX AntiBuild
# +------------------------------------------------------+ #
# | EssentialsX AntiBuild | #
# +------------------------------------------------------+ #
############################################################
# You need to install EssentialsX AntiBuild for this section to work. # You need to install EssentialsX AntiBuild for this section to work.
# See https://essentialsx.net/wiki/Module-Breakdown.html and http://wiki.ess3.net/wiki/AntiBuild for more information. # See https://essentialsx.net/wiki/Module-Breakdown.html and http://wiki.ess3.net/wiki/AntiBuild for more information.
@ -1149,11 +1116,7 @@ protect:
# Which blocks should not be dispensed by dispensers # Which blocks should not be dispensed by dispensers
dispenser: dispenser:
############################################################ ## EssentialsX Spawn + New Players
# +------------------------------------------------------+ #
# | EssentialsX Spawn + New Players | #
# +------------------------------------------------------+ #
############################################################
# You need to install EssentialsX Spawn for this section to work. # You need to install EssentialsX Spawn for this section to work.
# See https://essentialsx.net/wiki/Module-Breakdown.html for more information. # See https://essentialsx.net/wiki/Module-Breakdown.html for more information.

View file

@ -0,0 +1,3 @@
[13:10:19] [main/INFO] (ViaProxy) Usage: java -jar viaproxy.jar | Starts ViaProxy in graphical mode if available
[13:10:19] [main/INFO] (ViaProxy) Usage: java -jar viaproxy.jar config <config file> | Starts ViaProxy with the specified config file
[13:10:19] [main/INFO] (ViaProxy) Usage: java -jar viaproxy.jar cli --help | Starts ViaProxy in CLI mode

View file

@ -0,0 +1,3 @@
[13:10:19] [main/INFO] (ViaProxy) Usage: java -jar viaproxy.jar | Starts ViaProxy in graphical mode if available
[13:10:19] [main/INFO] (ViaProxy) Usage: java -jar viaproxy.jar config <config file> | Starts ViaProxy with the specified config file
[13:10:19] [main/INFO] (ViaProxy) Usage: java -jar viaproxy.jar cli --help | Starts ViaProxy in CLI mode

View file

@ -8,7 +8,7 @@ in {
serverProperties = common.serverProperties // { serverProperties = common.serverProperties // {
difficulty = 2; difficulty = 2;
server-port = 30009; server-port = 30009;
motd = "§l§aJohnside SMP§r §l§fworld for §4John lovers only."; motd = "§l§9Johnside SMP§r §l§fworld for §4John lovers only.";
}; };
whitelist = common.whitelist; whitelist = common.whitelist;
symlinks = common.symlinks // { symlinks = common.symlinks // {

View file

@ -0,0 +1,16 @@
{pkgs, ...}: let
common = import ../common.nix { inherit pkgs; };
uberBukkit = pkgs.vanillaServers.vanilla.overrideAttrs (oldAttrs: {
src = ../uberbukkit.jar;
});
in {
services.minecraft-servers.servers.uberbeta = {
enable = true;
package = uberBukkit;
jvmOpts = "-Xmx512M";
serverProperties = common.serverProperties // {
difficulty = 3;
server-port = 30005;
};
};
}

Binary file not shown.

View file

@ -1,133 +0,0 @@
# Config version. Do not change this
config-version = "2.7"
# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25577.
bind = "0.0.0.0:25565"
# What should be the MOTD?
motd = "<#09add3>A Velocity Server"
# What should we display for the maximum number of players?
show-max-players = 500
# Should we authenticate players with Mojang? By default, this is on.
online-mode = true
# Should the proxy enforce the new public key security standard? By default, this is on.
force-key-authentication = true
# If client's ISP/AS sent from this proxy is different from the one from Mojang's
# authentication server, the player is kicked. This disallows some VPN and proxy
# connections but is a weak form of protection.
prevent-client-proxy-connections = false
# Should we forward IP addresses and other data to backend servers?
# - "none": No forwarding will be done. All players will appear to be connecting from the proxy and will have offline-mode UUIDs.
# - "legacy": Forward player IPs and UUIDs in a BungeeCord-compatible format. Use if you run servers using Minecraft 1.12 or lower.
# - "bungeeguard": Forward player IPs and UUIDs in a format supported by the BungeeGuard plugin. Use if you run servers using Minecraft 1.12 or lower, or if they don't support modern.
# - "modern": Forward player IPs and UUIDs as part of the login process using Velocity's native forwarding. Only applicable for Minecraft 1.13 or higher.
player-info-forwarding-mode = "bungeeguard"
# If you are using modern or BungeeGuard IP forwarding, configure a file that contains a unique secret here.
# The file is expected to be UTF-8 encoded and not empty.
forwarding-secret-file = "forwarding.secret"
# Announce whether or not your server supports Forge. If you run a modded server, we
# suggest turning this on.
#
# If your network runs one modpack consistently, use ping-passthrough = "mods" instead for a nicer display in the server list.
announce-forge = false
# If enabled and the proxy is in online mode, Velocity will kick
# any existing player who is online if a duplicate connection attempt is made.
kick-existing-players = false
# Should Velocity pass server list ping requests to a backend server?
# - "disabled": No pass-through will be done. The velocity.toml and server-icon.png will determine the initial server list ping response.
# - "mods": Passes only the mod list from your backend server into the response. The first server in your try list with a mod list will be used.
# - "description": Uses the description and mod list from the backend server. The first server in the try list that responds is used for the description and mod list.
# - "all": Uses the backend server's response as the proxy response. Velocity configuration is used as fallback.
ping-passthrough = "all"
# If not enabled (default is true) player IP addresses will be replaced by <ip address withheld> in logs
enable-player-address-logging = true
[servers]
dewdemolisher = "127.0.0.1:30010"
johnside = "127.0.0.1:30009"
bloxelcom = "127.0.0.1:30012"
beta = "127.0.0.1:30011"
# In what order we should try servers when a player logs in or is kicked from a server.
try = [
"dewdemolisher"
]
[forced-hosts]
# Configure your forced hosts here.
"mc.jimbosfiles.com" = [
"dewdemolisher"
]
"john.jimbosfiles.com" = [
"johnside"
]
"blox.jimbosfiles.com" = [
"bloxelcom"
]
"beta.jimbosfiles.com" = [
"beta"
]
[advanced]
# How large a Minecraft packet has to be before we compress it.
compression-threshold = 256
# How much compression should be done (from 0-9). The default is -1, which uses the default level of 6.
compression-level = -1
# How fast (in milliseconds) are clients allowed to connect after the last connection? By default, this is three seconds. Disable this by setting this to 0.
login-ratelimit = 3000
# Specify a custom timeout for connection timeouts here. The default is five seconds.
connection-timeout = 5000
# Specify a read timeout for connections here. The default is 30 seconds.
read-timeout = 30000
# Enables compatibility with HAProxy's PROXY protocol. If you don't know what this is for, then don't enable it.
haproxy-protocol = false
# Enables TCP fast open support on the proxy. Requires the proxy to run on Linux.
tcp-fast-open = false
# Enables BungeeCord plugin messaging channel support on Velocity.
bungee-plugin-message-channel = true
# Shows ping requests to the proxy from clients.
show-ping-requests = false
# By default, Velocity will attempt to gracefully handle situations where the user unexpectedly
# loses connection to the server without an explicit disconnect message by attempting to fall the
# user back, except in the case of read timeouts. BungeeCord will disconnect the user instead. You
# can disable this setting to use the BungeeCord behavior.
failover-on-unexpected-server-disconnect = true
# Declares the proxy commands to 1.13+ clients.
announce-proxy-commands = true
# Enables the logging of commands
log-command-executions = false
# Enables logging of player connections when connecting to the proxy, switching servers
# and disconnecting from the proxy.
log-player-connections = true
# Allows players transferred from other hosts via the
# Transfer packet (Minecraft 1.20.5) to be received.
accepts-transfers = false
[query]
enabled = false
port = 25577
map = "Velocity"
show-plugins = false

Binary file not shown.

View file

@ -1,31 +0,0 @@
{pkgs, outputs, lib, ...}: {
services = {
pufferpanel = {
enable = true;
environment = {
PUFFER_WEB_HOST = ":5010";
PUFFER_PANEL_SETTINGS_MASTERURL = "https://panel.${outputs.secrets.jimDomain}";
PUFFER_PANEL_EMAIL_PROVIDER = "smtp";
PUFFER_PANEL_EMAIL_HOST = "mx.${outputs.secrets.jimDomain}:587";
PUFFER_PANEL_EMAIL_FROM = "noreply@${outputs.secrets.jimDomain}";
PUFFER_PANEL_EMAIL_USERNAME = "noreply@${outputs.secrets.jimDomain}";
PUFFER_PANEL_EMAIL_PASSWORD = outputs.secrets.noreplyPassword;
};
extraPackages = with pkgs; [ bash curl gawk gnutar gzip ];
package = pkgs.buildFHSEnv {
name = "pufferpanel-fhs";
meta.mainProgram = "pufferpanel-fhs";
runScript = lib.getExe pkgs.pufferpanel;
targetPkgs = pkgs': with pkgs'; [ icu openssl zlib ];
};
};
nginx.virtualHosts."panel.${outputs.secrets.jimDomain}" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://127.0.0.1:5010";
proxyWebsockets = true;
};
};
};
}