Cambiar la ubicación del repositorio IPFS en el servicio demonio

Cambiar la ubicación del repositorio IPFS en el servicio demonio

Estoy trabajando para crear un servicio que mantenga un demonio IPFS, como parte de una red IPFS privada.

Para intentar mantener IPFS disponible para todos los usuarios fácilmente, elegí inicializar el repositorio de IPFS en una carpeta /opt. Configuré IPFS_PATH de /etc/bash.bashrcmanera que la ubicación predeterminada para todos los usuarios esté en esta carpeta/opt:

18:53:02 [foo@server ~]
$ echo $IPFS_PATH
/opt/ipfsNode/.ipfs

Una vez completado esto, inicialicé con éxito mi repositorio IPFS y pude iniciar el demonio como se esperaba.

$ ipfs daemon
Initializing daemon...
go-ipfs version: 0.12.2
Repo version: 12
System version: amd64/linux
Golang version: go1.16.15
Swarm is limited to private network of peers with the swarm key
Swarm key fingerprint: [redacted]
Swarm listening on /ip4/<ip>/tcp/4001
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
Swarm listening on /p2p-circuit
Swarm announcing /ip4/<ip>/tcp/4001
Swarm announcing /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/<ip>/tcp/5001
WebUI: http://<ip>:5001/webui
Gateway (readonly) server listening on /ip4/<ip>/tcp/8080
Daemon is ready

Para realizar la transición de esto a un servicio, creé esta definición de servicio en /etc/systemd/system/ipfs.service, usando un ejemplo de unlaboratorio de eleks:

[Unit]
 Description=IPFS Daemon
 After=syslog.target network.target remote-fs.target nss-lookup.target
 [Service]
 Type=simple
 ExecStart=/usr/local/bin/ipfs daemon --enable-namesys-pubsub
 User=foo
 [Install]
 WantedBy=multi-user.target

Sin embargo, parece intentar usar un repositorio inicializado en la parte superior de mi directorio de inicio ~/.ipfsen lugar de ${IPFS_PATH}/.ipfscuando se inicia el servicio. ¿Cómo puedo cambiar esto para encontrar el repositorio que ya inicialicé?

● ipfs.service - IPFS Daemon
     Loaded: loaded (/etc/systemd/system/ipfs.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2022-06-01 18:43:03 UTC; 17min ago
    Process: 227966 ExecStart=/usr/local/bin/ipfs daemon --enable-namesys-pubsub (code=exited, status=1/FAILURE)
   Main PID: 227966 (code=exited, status=1/FAILURE)

Jun 01 18:43:03 <server> systemd[1]: Started IPFS Daemon.
Jun 01 18:43:03 <server> ipfs[227966]: Initializing daemon...
Jun 01 18:43:03 <server> ipfs[227966]: go-ipfs version: 0.12.2
Jun 01 18:43:03 <server> ipfs[227966]: Repo version: 12
Jun 01 18:43:03 <server> ipfs[227966]: System version: amd64/linux
Jun 01 18:43:03 <server> ipfs[227966]: Golang version: go1.16.15
Jun 01 18:43:03 <server> ipfs[227966]: Error: no IPFS repo found in /home/foo/.ipfs.
Jun 01 18:43:03 <server> ipfs[227966]: please run: 'ipfs init'
Jun 01 18:43:03 <server> systemd[1]: ipfs.service: Main process exited, code=exited, status=1/FAILURE
Jun 01 18:43:03 <server> systemd[1]: ipfs.service: Failed with result 'exit-code'.

Respuesta1

Intente agregar esta línea en [Servicio]

Environment="IPFS_PATH=/path/to/ipfs"

información relacionada