{"id":16195355,"url":"https://github.com/furritos/docker-smapp","last_synced_at":"2025-04-07T15:56:46.951Z","repository":{"id":138903580,"uuid":"480477305","full_name":"furritos/docker-smapp","owner":"furritos","description":"Spacemesh App + Docker = Containerized Smesh Fun!","archived":false,"fork":false,"pushed_at":"2022-11-28T04:37:14.000Z","size":479,"stargazers_count":5,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-13T18:42:01.779Z","etag":null,"topics":["crypto","green","hdd","mine","plot","smapp","space","spacemesh","ssd","time","wallet"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/furritos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-04-11T17:12:23.000Z","updated_at":"2024-03-23T07:33:04.000Z","dependencies_parsed_at":"2023-10-11T07:56:29.785Z","dependency_job_id":null,"html_url":"https://github.com/furritos/docker-smapp","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"d28194a1dd387e33c0826bbb64f5cd49796177a4"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furritos%2Fdocker-smapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furritos%2Fdocker-smapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furritos%2Fdocker-smapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furritos%2Fdocker-smapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/furritos","download_url":"https://codeload.github.com/furritos/docker-smapp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247685630,"owners_count":20979085,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crypto","green","hdd","mine","plot","smapp","space","spacemesh","ssd","time","wallet"],"created_at":"2024-10-10T08:27:26.995Z","updated_at":"2025-04-07T15:56:46.920Z","avatar_url":"https://github.com/furritos.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker container for SMAPP\n[![Docker Image Size](https://img.shields.io/docker/image-size/furritos/docker-smapp/latest)](https://hub.docker.com/r/furritos/docker-smapp/tags)\n\nThis project takes the standalone **Spacemesh + Wallet** application and transforms into portable, web-accessible \ncontainer using Docker and noVNC.\n\n---\n\n[![SMAPP logo](doc/img/smapp-docker.png)](https://spacemesh.io/)\n**Spacemesh App** is  desktop application for Windows 10, OS X and Linux, now in a Docker container, which includes a Smesher and a basic wallet. \n\n---\n\n## Quick Start\n\n**NOTE**: The Docker command provided in this quick start is given as an example and parameters \nshould be adjusted as needed.\n\nFirst, clone this repository:\n```\ngit clone https://github.com/furritos/docker-smapp.git\ncd docker-smapp\n```\n\nLaunch the **SMAPP** Docker container with the following, Linux and PowerShell compatible, command:\n```\ndocker run -d \\\n  --name=container-smapp \\ \n  -v ${pwd}/config:/root/.config/Spacemesh \\\n  -v ${pwd}/post:/root/post \\\n  -p 5800:8080 \\\n  furritos/docker-smapp\n```\nFinally, take your favorite web browse and open `http://localhost:5800`.\nPlease refer to this [Get Started](https://spacemesh.io/start/) page for more information on using **SMAPP**.\n\n**NOTE:** By default, the resolution is set to `1440X900`.  To override these values, set resolution to `1680X1050`, the `docker run` command line would be:\n\n```\ndocker run -d \\\n  --name=container-smapp \\ \n  -v ${pwd}/config:/root/.config/Spacemesh \\\n  -v ${pwd}/post:/root/post \\\n  -p 5800:8080 \\\n  -e DISPLAY_WIDTH=1680 \\\n  -e DISPLAY_HEIGHT=1050 \\\n  furritos/docker-smapp\n```\n\n## Docker Basic Usage\n\n```\ndocker run [-d] \\\n  --name=container-smapp \\\n  [-v \u003cHOST_DIR\u003e:\u003cCONTAINER_DIR\u003e[:PERMISSIONS]]... \\\n  [-p \u003cHOST_PORT\u003e:\u003cCONTAINER_PORT\u003e]... \\\n  [-e \u003cVARIABLE_NAME\u003e=\u003cVALUE\u003e]... \\\n  furritos/docker-smapp\n```\n| Parameter | Description                                                                                                                                               |\n|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|\n| -d        | Run the container in the background.  If not set, the container runs in the foreground.                                                                   |\n| -v        | Set a volume mapping (allows to share a folder/file between the host and the container).  See the [Data Volumes](#data-volumes) section for more details. |\n| -p        | Set a network port mapping (exposes an internal container port to the host).  See the [Ports](#ports) section for more details.                           |\n| -e        | Pass an environment variable to the container. See the [Environment Variables](#environment-variables) section for more details.                          |\n\n### Environment Variables\n\nTo customize some properties of this container, the following environment variables can be passed via the `-e` parameter (one for each variable).  Value of this parameter has the format `\u003cVARIABLE_NAME\u003e=\u003cVALUE\u003e`.\n\n| Variable       | Description                                     | Default |\n|----------------|-------------------------------------------------|---------|\n|`DISPLAY_WIDTH` | Width (in pixels) of the application's window.  | `1440`  |\n|`DISPLAY_HEIGHT`| Height (in pixels) of the application's window. | `900`   |\n\n### Data Volumes\n\nThe following table describes data volumes used by the container.  The mappings\nare set via the `-v` parameter.  Each mapping is specified with the following\nformat: `\u003cHOST_DIR\u003e:\u003cCONTAINER_DIR\u003e[:PERMISSIONS]`.\n\n| Container path          | Permissions | Description                             |\n|-------------------------|-------------|-----------------------------------------|\n|`/root/.config/Spacemesh`| rw          | SMAPP configuration artifacts directory |\n|`/root/post`             | rw          | Plot files to be used for mining        |\n\n### Ports\n\nHere is the list of ports used by the container.  They can be mapped to the host\nvia the `-p` parameter (one per port mapping).  Each mapping is defined in the\nfollowing format: `\u003cHOST_PORT\u003e:\u003cCONTAINER_PORT\u003e`.  The port number inside the\ncontainer cannot be changed, but you are free to use any port on the host side.\n\n|  Host Port  | Container Port | Mapping to host | Description                                                                                         |\n|-------------|----------------|-----------------|-----------------------------------------------------------------------------------------------------|\n|     5800    |      8080      | Mandatory       | Port used to access the application's GUI via the web interface.                                    |\n|     5900    |      5900      | Optional        | Port used to access the application's GUI via the VNC protocol.  Optional if no VNC client is used. |\n\n### Changing Parameters of a Running Container\n\nAs can be seen, environment variables, volume and port mappings are all specified\nwhile creating the container.\n\nThe following steps describe the method used to add, remove or update\nparameter(s) of an existing container.  The general idea is to destroy and\nre-create the container:\n\n  1. Stop the container (if it is running):\n```\ndocker stop container-smapp \n```\n  2. Remove the container:\n```\ndocker rm container-smapp \n```\n  3. Create/start the container using the `docker run` command, by adjusting\n     parameters as needed.\n\n**NOTE**: Since all application's data is saved under the `${pwd}/config` folder in \nthe host volume, destroying and re-creating a container is not a problem: nothing is lost\nand the application comes back with the same state (as long as the volume mapping of\nthe `${pwd}/config` to `/root/.config/Spacemesh` folder remains the same).  The same is\nalso true for the `/root/post` directory.\n\n## Docker Image Update\n\nBecause features are added, issues are fixed, or simply because a new version\nof the containerized application is integrated, the Docker image is regularly\nupdated.  Different methods can be used to update the Docker image.\n\nThe system used to run the container may have a built-in way to update\ncontainers.  If so, this could be your primary way to update Docker images.\n\nAn other way is to have the image be automatically updated with [Watchtower].\nWhatchtower is a container-based solution for automating Docker image updates.\nThis is a \"set and forget\" type of solution: once a new image is available,\nWatchtower will seamlessly perform the necessary steps to update the container.\n\nFinally, the Docker image can be manually updated with these steps:\n\n  1. Fetch the latest image:\n```\ndocker pull furritos/docker-smapp\n```\n  2. Stop the container:\n```\ndocker stop container-smapp \n```\n  3. Remove the container:\n```\ndocker rm container-smapp \n```\n  4. Create and start the container using the `docker run` command, with the\nthe same parameters that were used when it was deployed initially.\n\n[Watchtower]: https://github.com/containrrr/watchtower\n\n### unRAID\n\nFor unRAID, a container image can be updated by following these steps:\n\n  1. Select the *Docker* tab.\n  2. Click the *Check for Updates* button at the bottom of the page.\n  3. Click the *update ready* link of the container to be updated.\n\n## Accessing the GUI\n\nAssuming that container's ports are mapped to the same host's ports, the\ngraphical interface of the application can be accessed via:\n\n  * A web browser:\n```\nhttp://\u003cHOST IP ADDR\u003e:5800\n```\n\n  * Any VNC client (must expose port first):\n```\n\u003cHOST IP ADDR\u003e:5900\n```\n\n## Shell Access\n\nTo get shell access to the running container, execute the following command:\n\n```\ndocker exec -ti container-smapp sh\n```\n\n## Support or Contact\n\nHaving troubles with the container or have questions?  Please\n[create a new issue].\n\n[create a new issue]: https://github.com/furritos/docker-smapp/issues","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurritos%2Fdocker-smapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffurritos%2Fdocker-smapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurritos%2Fdocker-smapp/lists"}