etam.ipfs

IPFS

Features:

  • Automatically creates a list of peers (connections).
  • Configuration is done using ipfs config through a custom module. It ensures changes can be repeated without issues and tracks differences.
  • Lets you set a custom public IP address if you're behind a router.
  • Downloads update files through the local IPFS gateway if IPFS is already installed.
  • Runs ipfs repo gc as a separate service to manage storage.
  • Works on x86_64 and aarch64 architecture.

Requirements

  • The system you want to target must use systemd.

Role Variables

  • ipfs_ansible_group: The Ansible group containing managed IPFS nodes. Default is all.
  • ipfs_home_dir: Default directory is /var/lib/ipfs.
  • ipfs_version: Specifies which version to use (self-explanatory).
  • ipfs_init_profile: Profile settings applied when setting up IPFS (see Configure profile).
  • ipfs_gc_when: Schedule for running ipfs repo gc, using systemd time format (see man systemd.time).
  • ipfs_force_https_download: Forces download of binaries via HTTPS, even if the service is running. Default is no.
  • ipfs_force_migration: Forces the execution of ipfs repo migrate, which means stopping the service without conditions. Default is no.
  • ipfs_swarm_port: Set to 4001 by default.
  • ipfs_public_addresses: Public addresses for swarm connections. The defaults are:
    • /ip4/{{ ansible_default_ipv4['address'] }}/tcp/{{ ipfs_swarm_port }}
    • /ip4/{{ ansible_default_ipv4['address'] }}/udp/{{ ipfs_swarm_port }}/quic
    • /ip4/{{ ansible_default_ipv4['address'] }}/udp/{{ ipfs_swarm_port }}/quic-v1
    • /ip4/{{ ansible_default_ipv4['address'] }}/udp/{{ ipfs_swarm_port }}/quic-v1/webtransport
  • ipfs_private_addresses: Set up like ipfs_public_addresses. Used for direct connections between IPFS nodes, helpful for LAN or VPN connections.
  • ipfs_config_extra: Extra configuration for IPFS nodes. The YAML format is converted to JSON and sent to ipfs config. The default is:
    ipfs_config_extra:
      Gateway.PublicGateways:
        localhost: null
    
    This executes:
    ipfs config --json Gateway.PublicGateways '{"localhost": null}'
    
    More details can be found here: https://github.com/ipfs/kubo/blob/master/docs/config.md#implicit-defaults-of-gatewaypublicgateways.

Dependencies

There are no dependencies.

Example Playbook

Simply use:

- hosts: ipfs
  roles: [ipfs]

License

GPL-3.0-or-later

Author Information

Adam "etam" Mizerski adam@mizerski.pl https://etam-software.eu

Informazioni sul progetto

Sets up IPFS nodes, fills "Peering.Peers" and contains custom ansible module that talks with "ipfs config".

Installa
ansible-galaxy install etam.ipfs
Licenza
gpl-3.0
Download
117
Proprietario
Doing a bit of programming, a bit of Linux sysadmin, a bit of openSUSE packaging, and most importantly enjoying free weekends.