Complete guide for running ChartMaker on Linux distributions.
# Update package index
sudo apt update
# Install required packages
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# Add Docker's official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Add Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Update package index again
sudo apt update
# Install Docker
sudo apt install -y docker-ce docker-ce-cli containerd.io
# Verify installation
docker --version# Install Docker
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io
# Start Docker service
sudo systemctl start docker
sudo systemctl enable docker# Install Docker
sudo pacman -S docker
# Start Docker service
sudo systemctl start docker
sudo systemctl enable dockerRun Docker without sudo:
# Add your user to the docker group
sudo usermod -aG docker $USER
# Log out and log back in for changes to take effect
# Or run this to activate in current terminal:
newgrp docker
# Verify you can run docker without sudo
docker run hello-world# Clone the repository
git clone https://github.com/brunurb/plotly-chart-maker-offline.git
# Navigate to the directory
cd plotly-chart-maker-offline
# Make the run script executable
chmod +x run.sh# Download as ZIP
wget https://github.com/brunurb/plotly-chart-maker-offline/archive/refs/heads/main.zip
# Extract
unzip main.zip
# Navigate to directory
cd plotly-chart-maker-offline-main
# Make executable
chmod +x run.sh# Simply run the script
./run.shThe application will:
- Check if Docker is running
- Build the Docker image (first time only - takes ~5 minutes)
- Start the container
- Open your browser to
http://localhost:8501
# 1. Build the Docker image
docker build -t chartmaker .
# 2. Create output directory
mkdir -p output_charts
# 3. Run the container
docker run -p 8501:8501 \
-v "$(pwd)/output_charts:/app/output_charts" \
-e OUTPUT_DIR="/app/output_charts" \
chartmaker
# 4. Open browser
xdg-open http://localhost:8501Press Ctrl+C in the terminal where it's running, or:
# Find the container ID
docker ps
# Stop the container
docker stop <container_id>Error: Cannot connect to the Docker daemon
Solution:
# Start Docker service
sudo systemctl start docker
# Enable Docker to start on boot
sudo systemctl enable docker
# Check Docker status
sudo systemctl status dockerError: permission denied while trying to connect to the Docker daemon socket
Solution:
# Add user to docker group
sudo usermod -aG docker $USER
# Log out and log back in, or run:
newgrp dockerError: Bind for 0.0.0.0:8501 failed: port is already allocated
Solution 1 - Use a different port:
# Edit run.sh and change the port
docker run -p 8502:8501 ...
# Then access at http://localhost:8502Solution 2 - Find and stop the process using port 8501:
# Find process using port 8501
sudo lsof -i :8501
# Stop it
kill -9 <PID>Solution:
# Manually open browser
xdg-open http://localhost:8501
# Or use your preferred browser
firefox http://localhost:8501
google-chrome http://localhost:8501Error: Various build errors
Solution:
# Clean Docker cache
docker system prune -a
# Rebuild without cache
docker build --no-cache -t chartmaker .Check permissions:
# Ensure output_charts directory exists and is writable
ls -la output_charts/
# Fix permissions if needed
chmod 777 output_charts/Check logs:
# View container logs
docker logs <container_id>
# Or if you know the container name
docker logs chartmakerEdit run.sh:
# Change this line:
docker run -p 8502:8501 ...# Specify a different output directory
docker run -p 8501:8501 \
-v "/path/to/your/output:/app/output_charts" \
-e OUTPUT_DIR="/app/output_charts" \
chartmaker# Add -d flag
docker run -d -p 8501:8501 \
-v "$(pwd)/output_charts:/app/output_charts" \
-e OUTPUT_DIR="/app/output_charts" \
--name chartmaker \
chartmaker
# View logs
docker logs -f chartmaker
# Stop
docker stop chartmaker# Add --restart unless-stopped
docker run -d --restart unless-stopped \
-p 8501:8501 \
-v "$(pwd)/output_charts:/app/output_charts" \
-e OUTPUT_DIR="/app/output_charts" \
--name chartmaker \
chartmaker# Limit memory and CPU
docker run -p 8501:8501 \
--memory="1g" \
--cpus="1.0" \
-v "$(pwd)/output_charts:/app/output_charts" \
chartmaker# Check Docker is installed
docker --version
# Check Docker is running
docker info
# Check image is built
docker images | grep chartmaker
# Test run
./run.sh- Run the application:
./run.sh - Upload a sample CSV file
- Generate a chart
- Export it
- Check
output_charts/folder for the exported file
# Stop running containers
docker stop $(docker ps -q --filter ancestor=chartmaker)
# Remove Docker image
docker rmi chartmaker
# Remove application files
cd ..
rm -rf plotly-chart-maker-offlineUbuntu/Debian/Mint:
sudo apt purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerdFedora:
sudo dnf remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker- First run is slow - Docker needs to download base images (~5 minutes)
- Subsequent runs are fast - Image is cached locally
- Large CSV files - May take longer to process
- Multiple exports - Batch export is faster than individual
- Issues: GitHub Issues
- Documentation: Check the main README.md
- Docker Help: Docker Documentation
✅ Fully tested and supported
✅ Supported - use dnf instead of apt
✅ Supported - use pacman instead of apt
✅ Supported - same as Ubuntu
✅ Supported - same as Ubuntu
Happy charting! 📊