Configuration
First Run Configuration
On first run, GoSuki will automatically generate a default configuration file at $XDG_CONFIG_DIR/gosuki/config.toml. This file serves as the central configuration for all modules and features.
You can view the default configuration template using the command:
gosuki config genoutput
# overrides browser specific option
watch-all = true
# Disable specific modules (e.g., GitHub, Reddit) from being monitored
disabled-modules = ["github", "reddit"]
[webui]
listen = "127.0.0.1:2025" # Listen address and port for the web UI
[chrome]
[chrome.profile-options]
watch-all-profiles = true # Watch all Chrome profiles for changes
# Specific Chrome profile to monitor
# note: watch-all-profiles must be set to false for this option to take effect
# ignored when watch-all-profiles or watch-all is set to `true`
profile = "Default" # Specific Chrome profile to monitor
[firefox]
[firefox.profile-options]
watch-all-profiles = true # Watch all Firefox profiles for changes
# Specific Firefox profile to monitor
# note: watch-all-profiles must be set to false for this option to take effect
profile = "default"
# Specific profile from the `librewolf` flavour of firefox
# profile = "librewolf:my-profile"
[database]
path = "~/.local/share/gosuki/gosuki.db" # Database file path
sync-interval = '5s' # Database sync interval
[github]
github-token = "xxxxxxxxxxxxxxxxxxxx" # GitHub API token for authentication
sync-interval = '6h' # GitHub data sync interval
[html-autoimport]
paths = ["$HOME/shares/bookmarks"] # Paths to import HTML bookmarks from
[reddit-saves]
client-id = "xxxxxxxxxxxxxxxxxxxx" # Reddit API client ID
client-secret = "xxxxxxxxxxxxxxxxxxxx" # Reddit API client secret
password = "xxxxxxxxxxxxxxxxxxxx" # Reddit account password
sync-interval = '24h' # Reddit saves sync interval
username = "xxxxxxxxxxxxxxxxxxxx" # Reddit username
[p2p-sync]
# Set to address/hostname of master sync node
# Set to `localhost` or empty when running as sync-master
# You need to open port 2026/tcp on the master node
master-node = "" # Address of the sync master node
sync-master = true # Set to true to run this node as a sync master
master-listen = "" # Address to listen on as sync-master (defaults to 0.0.0.0)
alias = "" # Alias to identify this Gosuki nodeThis will output a TOML file with all available configuration options, pre-filled with default values. The generated file includes sections for:
- Browser configurations (Chrome, Firefox)
- Database settings
- Module-specific options
- Global settings
Watch a specific profile
- set both the global
watch-alland browser specificwatch-all-profilestofalse - set the target profile to use with
profile = "my-profile" - if you want to set the profile to use for a specific flavour, use
profile = "librewolf:myprofile"- this would the profilemy-profilefor thelibrewolfflavour
Custom Profile Paths
You can also set custom profile paths through the [chrome.custom-profiles] and [firefox.custom-profiles] sections. Each entry requires:
flavour: Must be set to"chrome"for Chrome/Chromium or"firefox"for Firefox/Firefox ESRname: A unique identifier for your custom profilepath: The absolute path to the browser profile directory
Example configuration:
[[chrome.custom-profiles]]
flavour = "chrome"
name = "work-chrome"
path = "/opt/chromium/profiles/work"
[[firefox.custom-profiles]]
flavour = "firefox"
name = "personal-firefox"
path = "/home/user/.mozilla/firefox/abc123.default"After adding custom profiles, verify they’re detected with gosuki profile list. You’ll need to set watch-all-profiles = false and specify your desired profile via profile = "work-chrome" in the browser configuration section.