This repository provides a ready-to-use Docker image to run an Idena node easily and securely, with SSH access and persistent data storage. Running an Idena node allows you to actively participate in the Idena network, validate transactions, and contribute to decentralization. Running your node via Docker simplifies installation, dependency management, and ensures an isolated and reproducible environment. For more information about the Idena project, visit idena.io.
graph TD;
User["User (SSH client)"] -->|SSH| SSHPort["Host:{SshPort}"]
SSHPort -->|Container's internal port 22| Container["idena-node container"]
Container -->|"API:9009 (accessible via SSH tunnel)"| SSHPort
Container -->|P2P:40405| Network["P2P Network"]
Container -->|/datadir| Volume["Host Data Directory"]
First, create a directory on your host to persist node data and, if you have one, copy your api.key into it:
mkdir -p ~/MyDockers/idena-node/datadir
# If you have an existing API key:
# cp /path/to/your/api.key ~/MyDockers/idena-node/datadir/api.key
Then, run the container:
docker run -d \
--restart unless-stopped \
-p 60022:22 \
-p 40405:40405 \
-p 9999:9999 \
-v ~/MyDockers/idena-node/datadir:/datadir \
-e IDENA_USER_ACCOUNT_NAME=idenaUser \
-e IDENA_USER_ACCOUNT_PASS=idenaUserPassword \
--name idena-node rinzlerfr/idena-node
Options explained:
-d: Runs the container in the background (detached mode).--restart unless-stopped: Automatically restarts the container unless it has been explicitly stopped (e.g., by docker stop idena-node).Note: The SSH port mapping (
-p 60022:22) is required if you want to connect to your node via SSH, for example to use port forwarding with the command:ssh -L 9999:localhost:9009 idenaUser@<host_ip> -p 60022Here,
60022is just an example: you can replace it with any free port of your choice, as long as you use the same port number in both thedocker runandsshcommands. This is necessary to allow the Idena desktop application to connect to your remote node as if it were local (the application will connect tohttp://localhost:9999).The
-p 9999:9999mapping in thedocker runcommand exposes the node's API port. If the API service inside the container listens on port9009(Idena standard), and you want to access it directly viahttp://<host_ip>:9999(without an SSH tunnel), you should use-p 9999:9009instead. If access is exclusively via the SSH tunnel (as described above), this direct port mapping-p 9999:9999(or-p 9999:9009) is not strictly necessary for this specific access method, as the tunnel handles the connection to the container's internal port9009. The architecture diagram illustrates API access via the container's internal port9009, typically reached through the SSH tunnel.
Replace:
60022 with your desired SSH port~/MyDockers/idena-node/datadir with your data directory pathidenaUser and idenaUserPassword with your SSH credentials| Variable | Description | Required | Example |
|---|---|---|---|
| IDENA_USER_ACCOUNT_NAME | SSH user account name | Yes | idenaUser |
| IDENA_USER_ACCOUNT_PASS | SSH user account password | Yes | idenaUserPassword |
Data directory:
Create a directory on your host to persist node data (if not already done in Quick Start) and copy your api.key into it:
mkdir -p ~/MyDockers/idena-node/datadir
cp /path/to/your/api.key ~/MyDockers/idena-node/datadir/api.key
Your api.key is usually found in the datadir directory of your existing Idena installation, or is generated by the Idena client when first setting up a local node. If you don't have one, the node will generate one on its first startup, but you will need to retrieve it from the container (e.g., via SSH) to use it with the desktop application.
If you want to build the image locally:
docker build -t idena-node .
See Quick Start.
To access your remote node API securely from your local Idena desktop app, use SSH port forwarding:
ssh -L 9999:localhost:9009 idenaUser@<host_ip> -p 60022
(If the Idena Desktop application is running on the same machine as the Docker container, you can use localhost as <host_ip>.)
Then, in the Idena app, set the node address to:
http://localhost:9999
docker pull rinzlerfr/idena-node
docker stop idena-node
docker rm idena-node
-p, -v, and -e parameters as during the initial launch to preserve your configuration and data.)rinzlerfr/idena-node in the Docker registry and download it.docker/idena-node/datadir).api.key into the data directory.IDENA_USER_ACCOUNT_PASS).api.key. Do not share it publicly.Make sure the ports (SSH port like 60022, Idena P2P 40405, Idena API if directly exposed like 9999) are not used by another service on your host.
Ensure the Docker user has read/write permissions on the mapped directory. You can try to fix permissions with sudo chown -R $(id -u):$(id -g) ~/MyDockers/idena-node/datadir (adapt the path if necessary and ensure the user running this command is the one who created the directory or has sudo rights) or ensure the user running Docker has the rights. On Windows, check Docker Desktop's drive sharing settings.
Check SSH port mapping, username, password, and host IP. Ensure the SSH service is running in the container (it should be by default).
Use --restart unless-stopped in your docker run command.
Use the command docker logs idena-node to see the node's output.
For other issues, open an issue on GitHub or see Support.
If you find this project useful, donations are welcome:
0x3fc4e0d8dcc6d767eb5381abe89f52cad874a8e5
Contributions are welcome! Please open an issue or a pull request on GitHub.
MIT — see LICENSE for details.
Content type
Image
Digest
sha256:0f73ed5f1…
Size
34.6 MB
Last updated
6 months ago
docker pull rinzlerfr/idena-node