DaisyVotes — Vote Receiver
New in 2.0 DaisyVotes has its own embedded vote receiver — you don’t need NuVotifier. It speaks the standard Votifier protocol (both v2 tokens and v1 RSA keys), listens on its own port, and even imports your existing NuVotifier setup automatically.
The receiver is configured in receiver.yml.
Quick setup
Section titled “Quick setup”-
Pick a port and open it. The default is
8192(the standard Votifier port) on host0.0.0.0. Make sure it’s open in your firewall and reachable from the internet — vote sites connect to it directly. -
Token sites (v2 — most common). Use the default token already in
receiver.yml(tokens.default) — one token works for every site. Paste it into the site’s Votifier token field, along with your host/IP and the port. Per-site tokens are optional; create one only if you want a listing isolated:Terminal window /daisyvotes receiver token create minecraftservers # optional(Generated tokens are printed once and never written to the log.)
-
Legacy v1 sites use the public key. Run
/daisyvotes receiver publickeyand paste the printed key into the site’s public key field (with your host/IP and the port):Terminal window /daisyvotes receiver publickey -
Verify. Run
/daisyvotes receiver statusand/daisyvotes doctor— the receiver should report listening.
receiver.yml
Section titled “receiver.yml”enabled: truemode: Embedded # Embedded | NuVotifierBridge | Disabledbind: host: "0.0.0.0" port: 8192 backlog: 128 read-timeout-ms: 5000 max-payload-bytes: 8192protocols: v1: true # legacy RSA public key v2: true # token (recommended)security: rate-limit-enabled: true max-connections-per-ip-per-minute: 120 duplicate-window-seconds: 10 log-rejected-votes: truetokens: default: "••••••••" # generated on first runrsa: public-key: "-----BEGIN PUBLIC KEY----- …" private-key: "-----BEGIN PRIVATE KEY----- …" # keep secretmigration: import-nuvotifier-on-first-run: true imported-from-nuvotifier: falsemode | Behavior |
|---|---|
Embedded (default) | DaisyVotes opens its own socket and receives votes directly. No NuVotifier needed. |
NuVotifierBridge | Keep NuVotifier installed and let DaisyVotes receive votes through it instead of opening its own port. |
Disabled | The receiver is off (e.g. if another plugin forwards votes to DaisyVotes). |
| Key | Default | Description |
|---|---|---|
host | "0.0.0.0" | Address to bind. 0.0.0.0 listens on all interfaces. |
port | 8192 | Listening port. Open it in your firewall. |
backlog | 128 | Socket accept backlog. |
read-timeout-ms | 5000 | Per-connection read timeout. |
max-payload-bytes | 8192 | Maximum accepted payload size (anti-abuse). |
protocols
Section titled “protocols”| Key | Default | Description |
|---|---|---|
v2 | true | Token-based protocol. Recommended — use tokens on vote sites whenever possible. |
v1 | true | Legacy RSA public-key protocol, kept on for compatibility with older sites. |
security
Section titled “security”| Key | Default | Description |
|---|---|---|
rate-limit-enabled | true | Drop connections from an IP that exceeds the per-minute limit. |
max-connections-per-ip-per-minute | 120 | The per-IP connection cap. |
duplicate-window-seconds | 10 | Drop identical votes arriving within this many seconds. |
log-rejected-votes | true | Log votes that were rejected (bad token, malformed, rate-limited). |
tokens
Section titled “tokens”A map of named tokens. DaisyVotes generates a default token on first run, and that one token works for every site — most servers never need more. Create extra per-site tokens only if you want each listing isolated (so you can rotate one without touching the others). Manage them with commands rather than editing by hand:
| Command | Description |
|---|---|
/daisyvotes receiver token create <name> | Create a new token and print it once. |
/daisyvotes receiver token rotate <name> | Replace an existing token (printed once). |
/daisyvotes receiver publickey | Print the v1 RSA public key. |
migration
Section titled “migration”| Key | Default | Description |
|---|---|---|
import-nuvotifier-on-first-run | true | Auto-import plugins/Votifier/config.yml on first start. |
imported-from-nuvotifier | false | Set to true once an import has run. |
Re-run an import any time with /daisyvotes receiver import.
Receiver commands
Section titled “Receiver commands”| Command | Permission | Description |
|---|---|---|
/daisyvotes receiver status | daisyvotes.admin.receiver | Mode, bind address, listening state, accepted/rejected counts, last error. |
/daisyvotes receiver reload | daisyvotes.admin.receiver | Restart the receiver after editing receiver.yml. |
/daisyvotes receiver import | daisyvotes.admin.receiver | Import settings from an existing NuVotifier config. |
/daisyvotes receiver token create|rotate <name> | daisyvotes.admin.receiver | Create or rotate a named token. |
/daisyvotes receiver publickey | daisyvotes.admin.receiver | Print the v1 RSA public key. |