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 isall
.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 runningipfs repo gc
, using systemd time format (seeman systemd.time
).ipfs_force_https_download
: Forces download of binaries via HTTPS, even if the service is running. Default isno
.ipfs_force_migration
: Forces the execution ofipfs repo migrate
, which means stopping the service without conditions. Default isno
.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 likeipfs_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 toipfs config
. The default is:
This executes:ipfs_config_extra: Gateway.PublicGateways: localhost: null
More details can be found here: https://github.com/ipfs/kubo/blob/master/docs/config.md#implicit-defaults-of-gatewaypublicgateways.ipfs config --json Gateway.PublicGateways '{"localhost": null}'
Dependencies
There are no dependencies.
Example Playbook
Simply use:
- hosts: ipfs
roles: [ipfs]
License
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.