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. 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 control watching all profiles per browser.

[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’)

[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 flavour field must be set to "chrome" for Google Chrome profiles. Use gosuki profile list to 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 flavour field must be set to "firefox" for both Firefox and Firefox ESR profiles. Use gosuki profile list to verify your custom profile is detected.


[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’)

[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 node
  • sync-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 is 2026)
  • 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

[reddit]

[reddit]
  client-id = ""
  client-secret = ""
  username = ""
  password = ""
  sync-interval = '24h'
  include-likes = false
  • client-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

  1. Path Expansion: Values like ~/.local/share/gosuki/ and $HOME/shares/bookmarks will be automatically expanded to their absolute paths.
  2. Custom Profile Paths: To use non-standard browser profiles, define them using the [custom-profiles] array format shown above. Optionally set watch-all-profiles = false and specify which profile to use with profile = "your-custom-name".
  3. Flavour Specification: The flavour field is required for each custom profile (use "chrome" for Chrome/Chromium, "firefox" for Firefox/Firefox ESR). Use gosuki profile list to verify your profiles are detected and check available browser flavors.
  4. Module Flavors: To see all available modules and their supported flavors, run gosuki modules list.
  5. Default Values: Unspecified options will use their built-in defaults.
  6. Editing: You can manually edit the config file after generation. Changes will take effect after restarting the daemon.