GNUNET.CONF(5)

πŸ“¦
version 0.27.0 Β· 3 versions
, in alpine 3.24, debian bookworm, debian trixie, opensuse-leap 16.0, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– gnunet.conf πŸ’– β€” GNUnet configuration file

ok bestie, this is the File Formats Manual page for gnunet.conf, section 5, and it's genuinely a whole vibe. let's get into it 🫢


✨ NAME ✨

gnunet.conf β€” GNUnet configuration file


🌸 DESCRIPTION 🌸

so like, a GNUnet setup usually has two little squads of processes: a bunch of service processes that run under a user called "gnunet", and a bunch of user-interface processes that run under your normal everyday account. two friend groups, basically.

the default hangout spot for the services config file is ~gnunet/.config/gnunet.conf. but β€” and this is the tea β€” normal users might also need read access to that file, so you might wanna instead put the service process config over in /etc/gnunet.conf. slay.

gnunet-setup(1) β€” which is part of gnunet-gtk β€” can edit this config for you, no cap.

the parts of GNUnet that run as a normal user can have config options too, and they read from $HOME/.config/gnunet.conf. that second config file is allowed to just skip any options that belong to the services. it's giving minimal effort, and honestly? valid.

the basic structure of the config file is this:

  • the file is split into sections.
  • every section begins with a token in square brackets. the current section ends when a new section starts, or when you hit end of file.
  • a section contains a number of options of the form "OPTION=VALUE".
  • whitespace surrounding the "=" token is stripped out β€” in other words, "OPTION = VALUE" and "OPTION=VALUE" are treated as equal.
  • empty lines and lines beginning with a "#" are treated as comments.
  • boolean values are given as "YES" and "NO".

almost all options are optional (iconic behaviour honestly). the tools just resort to reasonable defaults if an option isn't there. default values for all of the options live in the files in the $GNUNET_PREFIX/share/gnunet/config.d/ directory. a typical setup will work out of the box with those. see the examples section below for some common setups on top of that. πŸ’…

πŸŽ€ Variable naming conventions and data types πŸŽ€

boolean values for options are set via "YES" or "NO" values, without the double-quotes.

options which include "PATH" or "path" define a path on the file-system and can take additional variables in the path, such as $GNUNET_TMP.

section names, as listed more in detail below, are small letters only, enclosed by square brackets.

πŸ‘‘ GENERAL OPTIONS πŸ‘‘

many options will be common between sections. they can be repeated under each section with different values. it's giving reusable.

the [PATHS] section is special. here it's possible to specify values for variables like "GNUNET_HOME". then, in all filenames that begin with "$GNUNET_HOME", the "$GNUNET_HOME" will be replaced with the respective value at runtime. the main use of this is to redefine "$GNUNET_HOME", which by default points to $HOME/.config/. by setting this variable, you can change the location where GNUnet stores its internal data. main character energy fr.

gnunet.conf also accepts the variable GNUNET_TMP, which we suggest you use in place of the absolute definition of /tmp. so instead of /tmp/foo you would write $GNUNET_TMP/foo. the usage of $GNUNET_TMP/foo will result in $TMPDIR/gnunet/foo, or $TMP/gnunet/foo, and finally, if TMPDIR is undefined, /tmp/gnunet/foo.

the following options are generic and shared by all services:

  • HOSTNAME β€” the hostname specifies the machine on which the service is running. this is usually "localhost".
  • BINARY β€” the filename that implements the service. for example "gnunet-service-ats".
  • IMMEDIATE_START β€” start the service always when the peer starts. set to YES for services that should always be launched, even if no other service explicitly needs them.
  • START_ON_DEMAND β€” set to YES to automatically start the service when it is requested by another service. YES for most GNUnet services.
  • NOARMBIND β€” set to YES to never have ARM bind to the respective socket. this option is mostly for debugging in situations where ARM cannot pass the pre-bound socket to the child due to interference from PREFIX-commands. this option is only effective in combination with IMMEDIATE_START being YES. NO by default.
  • PREFIX β€” PREFIX the given command (with its arguments) to the actual BINARY to be executed. useful to run certain services under special supervisors like strace, dtrace, or valgrind. typically used in combination with IMMEDIATE_START and NOARMBIND. empty by default.
  • ACCEPT_FROM β€” a semi-column separated list of IPv4 addresses that are allowed to use the service; usually 127.0.0.1.
  • ACCEPT_FROM6 β€” a semi-column separated list of IPv6 addresses that are allowed to use the service; usually ::1.
  • UNIXPATH β€” path to use for the UNIX domain socket for inter process communication with the service on POSIX systems.
  • UNIX_MATCH_UID β€” if UNIX domain sockets are used, set this to YES if only users with the same UID are allowed to access the service.
  • UNIX_MATCH_GID β€” if UNIX domain sockets are used, set this to YES if only users with the same GID are allowed to access the service.
  • RUN_PER_USER β€” end-users should never have to change the defaults GNUnet provides for this option.
    • YES β€” set to YES if this service should be run per-user.
    • NO β€” set to NO if this is a system service.

in the following sections, the absence of a default value is either expressed as "Default value:" followed by nothing, or the lack of this line. (mysterious. we love a little enigma πŸ™ˆ)

🧚 ARM 🧚

  • PORT β€” Default value: 2087
  • HOSTNAME β€” Default value: localhost
  • BINARY β€” Default value: gnunet-service-arm
  • ACCEPT_FROM β€” Default value: 127.0.0.1;
  • ACCEPT_FROM6 β€” Default value: ::1;
  • UNIXPATH β€” special case, uses user runtime dir even for per-system service.
    • Default value: $GNUNET_USER_RUNTIME_DIR/gnunet-service-arm.sock
  • UNIX_MATCH_UID β€” Default value: YES
  • UNIX_MATCH_GID β€” Default value: YES
  • GLOBAL_POSTFIX β€” in the -l option, format characters from strftime(3) are allowed; in the GLOBAL_POSTFIX, "{}" stands for the name of the respective service. so the following example for this option would introduce per-service logging with a new log file each day. note that only the last 3 log files are preserved. example:
-l $GNUNET_CACHE_HOME/{}-%Y-%m-%d.log

Default value:

  • GLOBAL_PREFIX β€” Default value:
  • START_SYSTEM_SERVICES β€” if set to YES, ARM will only start services that are marked as system-level services (and we'll expect a second ARM to be run per-user to run user-level services). note that in this case you must have manually created a different configuration file with the user where at least this and the START_USER_SERVICES options differ.
  • START_USER_SERVICES β€” if set to YES, ARM will only start services that are marked as per-user services (and we'll expect a system user to run ARM to provide system-level services). per-user services enable better personalization and privilege separation and in particular ensures that personal data is stored under $HOME, which might be important in a multi-user system (or if $HOME is encrypted and /var/ is not).

note that if you have different ARM services for SYSTEM and USER, and you are not on UNIX, you need to change the PORT option for the USER ARM instances to some free port (counting down from 2085 should provide free ports).

  • RESOURCE_DIAGNOSTICS β€” file where we should log per-service resource consumption on exit.
    • Default value: resource.log
  • USERNAME β€” name of the user that will be used to provide the service.
    • Default value:
  • MAXBUF β€” Default value:
  • TIMEOUT β€” Default value:
  • DISABLEV6 β€” Default value:
  • BINDTO β€” Default value:
  • REJECT_FROM β€” Default value:
  • REJECT_FROM6 β€” Default value:
  • PREFIX β€” Default value:

πŸ¦‹ ATS πŸ¦‹

  • PORT β€” Default value: 2098
  • HOSTNAME β€” Default value: localhost
  • BINARY β€” Default value: gnunet-service-ats
  • ACCEPT_FROM β€” Default value: 127.0.0.1;
  • ACCEPT_FROM6 β€” Default value: ::1;
  • UNIXPATH β€” Default value: $GNUNET_RUNTIME_DIR/gnunet-service-ats.sock
  • UNIX_MATCH_UID β€” Default value: NO
  • UNIX_MATCH_GID β€” Default value: YES
  • MODE β€” designated assignment mode. possible values: PROPORTIONAL, MLP, RIL.
    • Default value: proportional
  • UNSPECIFIED_QUOTA_IN β€” quotes in KiB or MiB per seconds. or use the word "unlimited". Default value: 64 KiB
  • UNSPECIFIED_QUOTA_OUT β€” quotes in KiB or MiB per seconds. or use the word "unlimited". Default value: 64 KiB
  • LOOPBACK_QUOTA_IN β€” quotes in KiB or MiB per seconds. or use the word "unlimited". Default value: unlimited
  • LOOPBACK_QUOTA_OUT β€” quotes in KiB or MiB per seconds. or use the word "unlimited". Default value: unlimited
  • LAN_QUOTA_IN β€” quotes in KiB or MiB per seconds. or use the word "unlimited". Default value: unlimited
  • LAN_QUOTA_OUT β€” quotes in KiB or MiB per seconds. or use the word "unlimited". Default value: unlimited
  • WAN_QUOTA_IN β€” quotes in KiB or MiB per seconds. or use the word "unlimited". Default value: 64 KiB
  • WAN_QUOTA_OUT β€” quotes in KiB or MiB per seconds. or use the word "unlimited". Default value: 64 KiB
  • WLAN_QUOTA_IN β€” quotes in KiB or MiB per seconds. or use the word "unlimited". Default value: 1 MiB
  • WLAN_QUOTA_OUT β€” quotes in KiB or MiB per seconds. or use the word "unlimited". Default value: 1 MiB
  • BLUETOOTH_QUOTA_IN β€” Default value: 128 KiB
  • BLUETOOTH_QUOTA_OUT β€” Default value: 128 KiB
  • PROP_PROPORTIONALITY_FACTOR β€” how proportional to preferences is bandwidth distribution in a network? Default value: 2.00
    • 1.0 β€” fair with respect to addresses without preferences.
    • > 1.0 β€” the bigger, the more respect is paid to preferences.
  • PROP_STABILITY_FACTOR β€” should we stick to existing connections or prefer to switch? [1.0...2.0], lower value prefers to switch, bigger value is more tolerant.
    • Default value: 1.25
  • MLP_MAX_DURATION β€” maximum duration for a solution process (both LP and MILP). Default value: 3 s

ok wait, don't go anywhere, bestie β€” there's more of this page coming πŸ’–

okay bestie, we're still in the config zone and it's giving so many knobs πŸ’…βœ¨ first up, the MLP crew:

  • MLP_MAX_ITERATIONS β€” Maximum numbero of iterations for a solution process (only LP). Tolerated MIP Gap [0.0 .. 1.0]. Default value: 0.025
  • MLP_MAX_MIP_GAP β€” Tolerated LP/MIP Gap [0.0 .. 1.0]. Default value: 0.025
  • MLP_MAX_LP_MIP_GAP β€” Default value: 0.025
  • MLP_MAX_ITERATIONS β€” Maximum number of iterations for a solution process. Default value: 1024 (yes, it shows up twice, that's literally what the page says πŸ’€)
  • MLP_COEFFICIENT_D β€” Default value: 1.0
  • MLP_COEFFICIENT_U β€” Default value: 1.0
  • MLP_COEFFICIENT_R β€” Default value: 1.0
  • MLP_MIN_BANDWIDTH β€” Default value: 1024
  • MLP_MIN_CONNECTIONS β€” Default value: 4
  • MLP_DUMP_PROBLEM_ALL β€” Dump all problems to disk. Default value: YES
  • MLP_DUMP_SOLUTION_ALL β€” Dump all solution to disk. Default value: YES
  • MLP_GLPK_VERBOSE β€” Print GLPK output. Default value: YES
  • MLP_DUMP_PROBLEM_ON_FAIL β€” Dump all problems to disk. Default value: YES
  • MLP_DUMP_SOLUTION_ON_FAIL β€” Dump all solution to disk. Default value: YES

and now the RIL era, no cap:

  • RIL_STEP_TIME_MIN β€” Default value: 500 ms
  • RIL_STEP_TIME_MAX β€” Default value: 1000 ms
  • RIL_ALGORITHM β€” Possible values: SARSA or Q-LEARNING. Default value: Q-LEARNING
  • RIL_DISCOUNT_BETA β€” Default value: 0.7
  • RIL_GRADIENT_STEP_SIZE β€” Default value: 0.3
  • RIL_TRACE_DECAY β€” Default value: 0.2
  • RIL_EXPLORE_RATIO β€” Default value: 0.1
  • RIL_GLOBAL_REWARD_SHARE β€” Default value: 1

πŸŽ€ AUCTION πŸŽ€

(empty β€” no options listed, just vibes ✨)

πŸŽ€ CADET πŸŽ€

  • IMMEDIATE_START β€” Default value: YES
  • START_ON_DEMAND β€” Default value: YES
  • PORT β€” Default value: 2096
  • HOSTNAME β€” Default value: localhost
  • BINARY β€” Default value: gnunet-service-cadet
  • PREFIX β€” (empty β€” no default listed)
  • ACCEPT_FROM β€” Default value: 127.0.0.1;
  • ACCEPT_FROM6 β€” Default value: ::1;
  • UNIXPATH β€” Default value: $GNUNET_RUNTIME_DIR/gnunet-service-cadet.sock
  • UNIX_MATCH_UID β€” Default value: NO
  • UNIX_MATCH_GID β€” Default value: YES
  • REFRESH_CONNECTION_TIME β€” How often do we send KEEPALIVE messages on connections to keep them from timing out? Default value: 5 min
  • DROP_PERCENT β€” Percentage of packets CADET is artificially dropping. Used for testing only! (no default listed)
  • ID_ANNOUNCE_TIME β€” How frequently do we usually announce our presence in the DHT? Default value: 1 h
  • CONNECT_TIMEOUT β€” Default value: 30 s
  • DHT_REPLICATION_LEVEL β€” What is the replication level we give to the DHT when announcing our existence? Usually there is no need to change this. Default value: 3
  • MAX_TUNNELS β€” Not implemented Default value: 1000
  • MAX_CONNECTIONS β€” Not implemented, replaced by MAX_ROUTES in NEW CADET! Default value: 1000
  • MAX_ROUTES β€” How many routes do we participate in at most? Should be smaller than MAX_MSGS_QUEUE. Default value: 5000
  • MAX_MSGS_QUEUE β€” Not implemented Default value: 10000
  • MAX_PEERS β€” Not implemented Default value: 1000
  • RATCHET_TIME β€” How often do we advance the ratchet even if there is not any traffic? Default value: 1 h
  • RATCHET_MESSAGES β€” How often do we advance the ratched if there is traffic? Default value: 64

πŸŽ€ COMMUNICATOR-UNIX πŸŽ€

  • UNIXPATH β€” Default value: $GNUNET_RUNTIME_DIR/gnunet-communicator-unix.sock

πŸŽ€ CONSENSUS πŸŽ€

  • START_ON_DEMAND β€” Default value: YES
  • PORT β€” Default value: 2103
  • HOSTNAME β€” Default value: localhost
  • BINARY β€” Default value: gnunet-service-consensus
  • ACCEPT_FROM β€” Default value: 127.0.0.1;
  • ACCEPT_FROM6 β€” Default value: ::1;
  • UNIXPATH β€” Default value: $GNUNET_RUNTIME_DIR/gnunet-service-consensus.sock
  • UNIX_MATCH_UID β€” Default value: YES
  • UNIX_MATCH_GID β€” Default value: YES

πŸŽ€ CORE πŸŽ€

  • START_ON_DEMAND β€” Default value: YES
  • PORT β€” Default value: 2092
  • HOSTNAME β€” Default value: localhost
  • BINARY β€” Default value: gnunet-service-core
  • ACCEPT_FROM β€” Default value: 127.0.0.1;
  • ACCEPT_FROM6 β€” Default value: ::1;
  • UNIXPATH β€” Default value: $GNUNET_RUNTIME_DIR/gnunet-service-core.sock
  • UNIX_MATCH_UID β€” Default value: NO
  • UNIX_MATCH_GID β€” Default value: YES
  • DISABLE_SOCKET_FORWARDING β€” Default value: NO
  • USERNAME β€” (empty β€” no default listed)
  • MAXBUF β€” (empty β€” no default listed)
  • TIMEOUT β€” (empty β€” no default listed)
  • DISABLEV6 β€” (empty β€” no default listed)
  • BINDTO β€” (empty β€” no default listed)
  • REJECT_FROM β€” (empty β€” no default listed)
  • REJECT_FROM6 β€” (empty β€” no default listed)
  • PREFIX β€” (empty β€” no default listed)
  • USE_EPHEMERAL_KEYS β€” Default value: YES This MUST be set to YES in production, only set to NO for testing for performance (testbed/cluster-scale use!).

πŸŽ€ DATACACHE-POSTGRES πŸŽ€

  • CONFIG β€” Default value: postgres:///gnunet

πŸŽ€ DATASTORE πŸŽ€

  • START_ON_DEMAND β€” Default value: YES
  • UNIXPATH β€” Default value: $GNUNET_RUNTIME_DIR/gnunet-service-datastore.sock
  • UNIX_MATCH_UID β€” Default value: NO
  • UNIX_MATCH_GID β€” Default value: YES
  • PORT β€” Default value: 2093
  • HOSTNAME β€” Default value: localhost
  • BINARY β€” Default value: gnunet-service-datastore
  • ACCEPT_FROM β€” Default value: 127.0.0.1;
  • ACCEPT_FROM6 β€” Default value: ::1;
  • QUOTA β€” Default value: 5 GB
  • BLOOMFILTER β€” Default value: $GNUNET_DATA_HOME/datastore/bloomfilter
  • DATABASE β€” Default value: sqlite
  • DISABLE_SOCKET_FORWARDING β€” Default value: NO

πŸŽ€ DATASTORE-SQLITE πŸŽ€

  • FILENAME β€” Default value: $GNUNET_DATA_HOME/datastore/sqlite.db

πŸŽ€ DATASTORE-POSTGRES πŸŽ€

  • CONFIG β€” Default value: postgres:///gnunet

πŸŽ€ DATASTORE-MYSQL πŸŽ€

  • DATABASE β€” Default value: gnunet
  • CONFIG β€” Default value: ~/.my.cnf
  • USER β€” Default value: gnunet
  • PASSWORD β€” (empty β€” no default listed)
  • HOST β€” Default value: localhost
  • PORT β€” Default value: 3306

πŸŽ€ DATASTORE-HEAP πŸŽ€

  • HASHMAPSIZE β€” Default value: 1024

πŸŽ€ DHT πŸŽ€

  • IMMEDIATE_START boolean β€” Default value: YES
  • START_ON_DEMAND boolean β€” Default value: YES
  • PORT integer β€” Default value: 2095
  • HOSTNAME string β€” Default value: localhost
  • BINARY string β€” Default value: gnunet-service-dht
  • ACCEPT_FROM string β€” Default value: 127.0.0.1;
  • ACCEPT_FROM6 string β€” Default value: ::1;
  • BUCKET_SIZE integer β€” Default value: 4
  • UNIXPATH path β€” Default value: $GNUNET_RUNTIME_DIR/gnunet-service-dht.sock
  • UNIX_MATCH_UID boolean β€” Default value: NO
  • UNIX_MATCH_GID boolean β€” Default value: YES
  • DISABLE_SOCKET_FORWARDING boolean β€” Default value: NO
  • USERNAME β€” =
  • MAXBUF β€” =
  • TIMEOUT β€” =
  • DISABLEV6 β€” =
  • BINDTO β€” =
  • REJECT_FROM β€” =
  • REJECT_FROM6 β€” =
  • PREFIX β€” =
  • CACHE_RESULTS β€” YES # Should the DHT cache results that we are routing in the DATACACHE as well?
  • DISABLE_TRY_CONNECT β€” NO # Special option to disable DHT calling 'try_connect' (for testing)

πŸŽ€ DHTCACHE πŸŽ€

  • DATABASE β€” Default value: heap
  • QUOTA β€” Default value: 50 MB
  • DISABLE_BF_RC boolean β€” Disable RC-file for Bloom filter? (for benchmarking with limited IO availability) Default value: NO

πŸŽ€ EXIT πŸŽ€

(empty β€” no options listed)

πŸŽ€ FS πŸŽ€

(empty β€” no options listed)

πŸŽ€ GNS πŸŽ€

(empty β€” no options listed)

πŸŽ€ HOSTLIST πŸŽ€

(empty β€” no options listed)

πŸŽ€ IDENTITY πŸŽ€

(empty β€” no options listed)

πŸŽ€ NAMECACHE πŸŽ€

(empty β€” no options listed)

πŸŽ€ NAMESTORE πŸŽ€

(empty β€” no options listed)

πŸŽ€ NAT-AUTO πŸŽ€

(empty β€” no options listed)

πŸŽ€ NAT πŸŽ€

(empty β€” no options listed)

πŸŽ€ NSE πŸŽ€

(empty β€” no options listed)

πŸŽ€ PEERINFO πŸŽ€

(empty β€” no options listed)

πŸŽ€ PEERSTORE πŸŽ€

(empty β€” no options listed)

πŸŽ€ PT πŸŽ€

(empty β€” no options listed)

πŸŽ€ REGEX πŸŽ€

(empty β€” no options listed)

πŸŽ€ RESOLVER πŸŽ€

(empty β€” no options listed)

πŸŽ€ REST πŸŽ€

  • UNIXPATH β€” Default value: $GNUNET_USER_RUNTIME_DIR/gnunet-service-rest.sock
  • BINARY β€” Default value: gnunet-rest-server
  • BIND_TO β€” Default value: 127.0.0.1
  • BIND_TO6 β€” Default value: ::1
  • REST_PORT β€” Default value: 7776
  • REST_ALLOW_HEADERS β€” Default value: Authorization,Accept,Content-Type
  • REST_ALLOW_ORIGIN β€” Default value: *
  • REST_ALLOW_CREDENTIALS β€” Default value: true

πŸŽ€ REVOCATION πŸŽ€

(empty β€” no options listed)

πŸŽ€ SCALARPRODUCT πŸŽ€

(empty β€” no options listed)

πŸŽ€ SECRETSHARING πŸŽ€

(empty β€” no options listed)

πŸŽ€ SET πŸŽ€

(empty β€” no options listed)

πŸŽ€ STATISTICS πŸŽ€

(empty β€” no options listed)

πŸŽ€ TEMPLATE πŸŽ€

(empty β€” no options listed)

πŸŽ€ TESTBED-LOGGER πŸŽ€

(empty β€” no options listed)

πŸŽ€ TESTBED πŸŽ€

(empty β€” no options listed)

πŸŽ€ TESTING πŸŽ€

(empty β€” no options listed)

πŸŽ€ TOPOLOGY πŸŽ€

  • IMMEDIATE_START β€” Default value: YES
  • NOARMBIND β€” Default value: YES
  • MINIMUM-FRIENDS β€” Default value: 0
  • FRIENDS-ONLY β€” Default value: NO
  • TARGET-CONNECTION-COUNT β€” Default value: 16
  • FRIENDS β€” Default value: $GNUNET_CONFIG_HOME/topology/friends.txt
  • BINARY β€” Default value: gnunet-daemon-topology

πŸŽ€ TRANSPORT πŸŽ€

(empty β€” no options listed)

πŸŽ€ UTIL πŸŽ€

(empty β€” no options listed)

πŸŽ€ VPN πŸŽ€

  • START_ON_DEMAND β€” Default value: YES
  • PORT β€” Default value: 2105
  • HOSTNAME β€” Default value: localhost
  • BINARY β€” Default value: gnunet-service-vpn
  • ACCEPT_FROM β€” Default value: 127.0.0.1;
  • ACCEPT_FROM6 β€” Default value: ::1;
  • UNIXPATH β€” Default value: $GNUNET_RUNTIME_DIR/gnunet-service-vpn.sock
  • UNIX_MATCH_UID β€” Default value: NO
  • UNIX_MATCH_GID β€” Default value: YES
  • IPV6ADDR β€” Default value: 1234::1
  • IPV6PREFIX β€” Default value: 32
  • IPV4ADDR β€” Default value: 10.11.10.1
  • IPV4MASK β€” Default value: 255.255.0.0
  • VIRTDNS β€” Default value: 10.11.10.2
  • VIRTDNS6 β€” Default value: 1234::17
  • IFNAME β€” Default value: vpn-gnunet

πŸŽ€ ZONEMASTER πŸŽ€

  • START_ON_DEMAND β€” Default value: YES
  • IMMEDIATE_START β€” Default value: YES
  • HOSTNAME β€” Default value: localhost
  • BINARY β€” Default value: gnunet-service-zonemaster
  • UNIXPATH β€” Default value: $GNUNET_USER_RUNTIME_DIR/gnunet-service-zonemaster.sock
  • PORT β€” Default value: 2123
  • UNIX_MATCH_UID β€” Do we require users that want to access GNS to run this process (usually not a good idea)? Default value: NO
  • UNIX_MATCH_GID β€” Do we require users that want to access GNS to be in the 'gnunet' group? Default value: NO
  • MAX_PARALLEL_BACKGROUND_QUERIES β€” How many queries is GNS allowed to perform in the background at the same time? Default value: 1000
  • ZONE_PUBLISH_TIME_WINDOW β€” How frequently do we try to publish our full zone? Default value: 4 h
  • USE_CACHE β€” Using caching or always ask DHT? Default value: YES
  • PREFIX β€” (empty β€” no default listed)

πŸŽ€ ZONEMASTER-MONITOR πŸŽ€

  • START_ON_DEMAND β€” Default value: YES
  • IMMEDIATE_START β€” Default value: YES
  • HOSTNAME β€” Default value: localhost
  • BINARY β€” Default value: gnunet-service-zonemaster-monitor
  • UNIXPATH β€” Default value: $GNUNET_USER_RUNTIME_DIR/gnunet-service-zonemaster-monitor.sock
  • PORT β€” Default value: 2124
  • UNIX_MATCH_UID β€” Do we require users that want to access GNS to run this process (usually not a good idea)? Default value: NO
  • UNIX_MATCH_GID β€” Do we require users that want to access GNS to be in the 'gnunet' group? Default value: NO

πŸ“š EXAMPLES πŸ“š

okay so this example is the lil starter pack: it uses a server with a known peer list to get you going. Most of y'all are behind an IPv4 firewall, so NAT is on. Please remember to swap your IP for your actual external address, bestie. πŸ’…

[hostlist]
OPTIONS = -b -e

[nat]
BEHIND_NAT = YES
ENABLE_UPNP = YES
DISABLEV6 = YES
EXTERNAL_ADDRESS = 157.166.249.10

[arm]
START_SYSTEM_SERVICES = YES
START_USER_SERVICES = NO

πŸ“ FILES πŸ“

  • ~gnunet/.config/gnunet.conf β€” GNUnet system-user configuration file
  • $HOME/.config/gnunet.conf β€” User specific GNUnet configuration file
  • /etc/gnunet.conf β€” Systemwide GNUnet configuration file
  • $GNUNET_PREFIX/share/gnunet/config.d/ β€” GNUnet configuration directory with all default option values

πŸ‘€ SEE ALSO πŸ‘€

okay bestie, you made it to the end, let's get you some more reading material because you're clearly a scholar πŸŽ€

  • env(1) β€” for when you want to vibe-check the environment variables, iykyk 🌸
  • gnunet-arm(1) β€” the ARM service, aka the one who actually starts and stops all your GNUnet services πŸ‘‘
  • gnunet-setup(1) β€” the config wizard, for when hand-editing this file is giving too much πŸ’€
  • strftime(3) β€” because a bunch of the time/date formats in this config speak strftime, no cap ✨

The full documentation for gnunet is maintained as a Texinfo manual. So like, this page? It's a vibe, but it's not the whole lore πŸ’…

If the info(1) and gnunet programs are properly installed at your site, this command:

info gnunet

should give you access to the complete handbook πŸ“–βœ¨

and this one:

info gnunet-c-tutorial

will give you access to a tutorial for developers 🧚 (yes, you too can become a GNUnet dev, main character energy fr fr)

Depending on your installation, this information is also available in gnunet(7) and gnunet-c-tutorial(7) β€” so peek there too if the info command is ghosting you 🫢


πŸ› BUGS πŸ›

Found something cursed? Not me pretending I didn't see it β€” please actually tell the devs! 😭

Report bugs by using https://bugs.gnunet.org or by sending electronic mail to ⟨gnunet-developers@gnu.org⟩ πŸ’Œ

ngl, bug reports are literally a love language. Don't be shy, they want to hear from you 🌈

and that's a wrap on GNUNET.CONF(5) bestie!! πŸ’– This page came from the Debian project, dated October 26, 2018, and it's the GNUNET.CONF(5) manual page in all its glory πŸŽ€ go forth, edit your config, and slay βœ¨πŸ’…πŸ‘‘