texturecraft-web

texturecraft-web

Docker app from MikaPST's Repository

Overview

TextureCraft Web is a community-maintained Docker image that serves TextureCraft, a 3D texture-painting application, through a browser-based WebAssembly interface. Work with 3D models and paint or create textures using the upstream application. The browser application uses local device graphics capabilities; the container only serves the static frontend and does not provide remote desktop or server-side rendering.

TextureCraft application icon

TextureCraft Web — Docker Image

A community-maintained Docker image for TextureCraft, providing its browser-based application through a self-hosted web interface.
Build automation and image publication to GitHub Container Registry (GHCR).

Build and publish TextureCraft Web GHCR image tag Docker Compose configuration


Why this repository?

The official TextureCraft project provides a browser-based version of its 3D texture painting application. This repository packages the web application into a Docker image to simplify self-hosting.

The goals are to:

  • Build the TextureCraft Web Web application from the upstream source code.
  • Publish a ready-to-run Docker image to GHCR.
  • Automatically rebuild the image every week to incorporate upstream changes.
  • Provide a convenient deployment option for Unraid Community Applications.
  • Offer a simple Docker Compose configuration for users who prefer managing containers with Compose.
  • Keep the packaging and deployment configuration separate from the upstream TextureCraft project.

This is a packaging and distribution project, not a fork intended to develop a separate application.

How it works

TextureCraft Web runs in the user's browser using WebAssembly.

TextureCraft Web runs in the user's browser using WebAssembly. The Docker container serves the generated static web application through NGINX; it does not provide a remote Linux desktop.

  • Browser-based interface: access the texture painting application through a web browser.
  • WebAssembly application: the application runs in the browser rather than in a remote desktop session.
  • Web graphics: the upstream web build uses the browser graphics capabilities supported by the application.
  • Self-hosted: run the application on your own server and access it over your local network or through a properly configured reverse proxy.

The container serves the application files rather than acting as an application backend or document-storage service, unless explicitly provided by the upstream web application.

Docker image

The image is published to GitHub Container Registry:

ghcr.io/mikapst/texturecraft-web:latest

Option 1 — Docker Compose (recommended)

A docker-compose.yml file is provided at the root of this repository. It is the simplest way to start and maintain TextureCraft Web with Docker Compose.

services:
  texturecraft-web:
    image: ghcr.io/mikapst/texturecraft-web:latest
    container_name: texturecraft-web
    ports:
      - "8080:8080"
    restart: unless-stopped

From the repository root, start the application with:

docker compose up -d

Open the application in your browser:

http://YOUR_SERVER_IP:8080

Replace YOUR_SERVER_IP with the IP address or hostname of your server. If Docker is running on your own computer, you can use http://localhost:8080.

Useful Compose commands

# View container logs
docker compose logs -f

# Pull the latest image and recreate the container
docker compose pull
docker compose up -d

# Stop and remove the container
docker compose down

No .env file or persistent volume is required for this basic setup. The host port is configured in docker-compose.yml; by default, port 8080 on the host is mapped to port 8080 in the container. To use a different host port, change the left-hand side of the mapping. For example, 8081:8080 exposes the application on host port 8081.

Option 2 — Run directly with Docker

If you prefer not to use Docker Compose, you can run the container directly:

docker pull ghcr.io/mikapst/texturecraft-web:latest

docker run -d \
  --name texturecraft-web \
  --restart unless-stopped \
  -p 8080:8080 \
  ghcr.io/mikapst/texturecraft-web:latest

Open the application at:

http://YOUR_SERVER_IP:8080

Optional CPU and memory limits can be added to the docker run command if needed, for example --cpus=2 --memory=2g. These limits are not included in the default Compose file.

Network access and reverse proxies

The container listens for HTTP traffic on port 8080. For external access, use a reverse proxy such as Traefik to terminate HTTPS and forward requests to the container over HTTP.

Do not expose an unencrypted HTTP port directly to the public Internet. Restrict access to your intended network or protect external access with HTTPS and appropriate access controls.

Automated builds

GitHub Actions builds and publishes the image automatically.

Trigger Behaviour
Weekly schedule Rebuilds from the upstream main branch
Manual workflow dispatch Allows a build to be triggered manually
Changes to this repository's README, Compose file or workflow Triggers a new build

Each successful build publishes:

  • latest — the most recently published image.
  • upstream-<commit> — identifies the upstream commit used for the build.

The build targets linux/amd64 and linux/arm64. Actual compatibility depends on the upstream build and the target platform.

[!IMPORTANT] A weekly build does not guarantee that upstream changes are compatible or stable. TextureCraft is under active development. Test new images before relying on them for important work.

The latest tag is mutable and may point to a newer image after a successful build.

Unraid Community Applications

This image is intended to be distributed through the maintainer's existing Unraid Community Applications repository.

The Unraid template will reference the published GHCR image and provide configuration for the web port and resource limits.

This repository contains the image build, publication workflow and Docker Compose configuration. The Unraid Community Applications template is maintained separately.

Upstream project

TextureCraft is an open-source project developed by the ArtCraft Team and its contributors.

This repository builds a browser-based version of the upstream application and packages its generated static web files into a Docker image. It is an independent community-maintained packaging project.

License and attribution

TextureCraft is dual-licensed under the MIT License or Apache License 2.0, at the user's option, according to the upstream project. Copyright belongs to the ArtCraft Team and TextureCraft contributors.

The upstream project includes license and attribution information for the application and bundled third-party assets. These notices and the applicable license files must be preserved when redistributing the application.

The licenses for the upstream application do not automatically determine the license of the packaging files maintained in this repository. Refer to the repository's own LICENSE file for the terms applicable to those files.

The TextureCraft name, ArtCraft branding and logos remain subject to their respective trademark and usage terms. This repository is an independent community-maintained packaging project and is not an official TextureCraft release and is not affiliated with or endorsed by the TextureCraft or ArtCraft maintainers.

Disclaimer

TextureCraft is under active development. Features, compatibility and behaviour may change between builds. Use the application and its generated files at your own discretion.

Requirements


    No special privileges, database, or persistent data volumes are required for the standard deployment. The web interface is served over HTTP on container port 8080. Browser graphics support and device performance affect the experience. WebGPU requires a secure context; use HTTPS through a reverse proxy for remote access. WebGL2 fallback availability depends on the browser and device.

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/mikapst/texturecraft-web:latest
Last Updated2026-11-04
First Seen2026-11-04

Runtime arguments

Web UI
http://[IP]:[PORT:8080]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

HTTP PortPorttcp

Host port used to access the TextureCraft Web interface. The container listens on port 8080.

Target
8080
Default
8087