config.toml
Configuration File Structure
The configuration file uses a simple TOML format with top-level keys for global settings and then sections for different components.
On Linux, the configuration file at XDG_CONFIG_DIR/gosuki/config.toml. By default, this resolves to ~/.config/gosuki/config.toml, following the XDG Base Directory Specification.
On MacOS, it is located at /Library/Application Support/gosuki/config.toml.
The location can be changed using the gosuki -c path/to/config.toml
Here’s a breakdown of the key parts:
Top-Level Settings
watch-all = true
disabled-modules = ["github", "reddit", "firefox"]watch-all: Whether to monitor all profiles browsers (default:true). Overrides browser sections.disabled-modules: List of module names to disable (e.g.,"github","reddit","firefox")
Note
set watch-all=false to disable automatic watching of all profiles and instead control watching profiles manually from their specific sections.
[database]
[database]
path = "~/.local/share/gosuki/gosuki.db"
sync-interval = '4s'path: Full path to database file location (supports shell expansions like~and$HOME)sync-interval: Synchronization interval (e.g., ‘5m’, default: ‘4s’)
[webui]
[webui]
listen = '127.0.0.1:2025'listen: Specifies the network address and port on which the UI server listens for incoming connections.- Format:
IP:port(e.g.,127.0.0.1:2025,localhost:8080, or0.0.0.0:8081). - By default, it binds to
127.0.0.1:2025, which restricts access to localhost only for security reasons. - Use
0.0.0.0to allow external access (not recommended without proper security measures). - The UI is typically used for web-based interaction or API endpoints, so ensure the port is accessible and not blocked by firewalls.
- Format:
[chrome]
[chrome]
[chrome.profile-options]
watch-all-profiles = false
profile = "Default"[chrome.custom-profiles]
You can define a list of custom profiles with their corresponding paths. The path must point directly to the profile and not the browser’s base directory.
[[chrome.custom-profiles]]
flavour = "chrome"
name = "my-custom-chrome"
path = "/home/user/.config/google-chrome/MyProfile"
[[chrome.custom-profiles]]
flavour = "chrome"
name = "work-chrome"
path = "/opt/chromium/profiles/work"Note: The
flavourfield must be set to"chrome"for Google Chrome profiles. Usegosuki profile listto verify your custom profile is detected and check available browser flavors.
[firefox]
[firefox]
[firefox.profile-options]
watch-all-profiles = true
profile = "default"[firefox.custom-profiles]
[[firefox.custom-profiles]]
flavour = "firefox"
name = "work-firefox"
path = "/home/user/.mozilla/firefox/abc123.default"
[[firefox.custom-profiles]]
flavour = "firefox"
name = "personal-firefox"
path = "/opt/firefox/profiles/personal"Note: The
flavourfield must be set to"firefox"for both Firefox and Firefox ESR profiles. Usegosuki profile listto verify your custom profile is detected.
[p2p-sync]
multi device synchronization settings
[p2p-sync]
sync-master = true # Set to true to run this node as a sync master
master-node = "hostname.lan" # The host or ip v4 address of the master node (listening port is 2026)
master-listen = "" # Address to listen on as sync-master (defaults to 0.0.0.0)
alias = "" # Alias to identify this Gosuki nodesync-master: Whether this node acts as the master for p2p sync (default:true)master-node: The host or ip v4 address of the master node (listening port is2026)master-listen: Address to listen on as sync-master (defaults to 0.0.0.0)alias: Alias to identify this Gosuki node
[html-autoimport]:
Auto imports bookmarks from a Netscape Bookmarks html file.
[html-autoimport]
paths = ["$HOME/shares/bookmarks", "~/other/shared/bookmarks"]paths: List of directories to scan for HTML bookmark files
[github]
[github]
sync-interval = '6h'
github-token = "GITHUB_TOKEN"github-token: GitHub personal access token (required for syncing)sync-interval: Sync interval in seconds (default: ‘6h’)
[reddit]
[reddit]
client-id = ""
client-secret = ""
username = ""
password = ""
sync-interval = '24h'
include-likes = falseclient-id/client-secret: Reddit API credentials (required)username/password: Reddit account credentials (required for syncing)sync-interval: Sync interval in seconds (default: ‘1h’)include-likes: Whether to also save liked posts
Configuration Notes
- Path Expansion: Values like
~/.local/share/gosuki/and$HOME/shares/bookmarkswill be automatically expanded to their absolute paths. - Custom Profile Paths: To use non-standard browser profiles, define them using the
[custom-profiles]array format shown above. Optionally setwatch-all-profiles = falseand specify which profile to use withprofile = "your-custom-name". - Flavour Specification: The
flavourfield is required for each custom profile (use"chrome"for Chrome/Chromium,"firefox"for Firefox/Firefox ESR). Usegosuki profile listto verify your profiles are detected and check available browser flavors. - Module Flavors: To see all available modules and their supported flavors, run
gosuki modules list. - Default Values: Unspecified options will use their built-in defaults.
- Editing: You can manually edit the config file after generation. Changes will take effect after restarting the daemon.