CUPS printing server with the latest HP drivers (https://github.com/arembez/cups)
3.9K
A Docker image for CUPS (Common Unix Printing System) print server, providing a complete printing solution in a containerized environment. Includes Kubernetes deployment automation for easy container orchestration.
docker pull arembez/cups:latest
docker run -d \
--name cups-server \
--privileged \
-p 631:631 \
-v ./config:/etc/cups \
arembez/cups:latest
Open your browser and navigate to:
https://localhost/admin:631
Default Credentials:
adminadmin| Variable | Description | Default |
|---|---|---|
ADMIN_PASSWORD | Admin user password | admin |
NAMESPACE | Kubernetes namespace | cups |
APP_NAME | Application name | cups |
| Path | Description |
|---|---|
/etc/cups | CUPS configuration directory (persistent) |
| Port | Protocol | Description |
|---|---|---|
| 631 | TCP | CUPS web interface and print service |
# Run with custom admin password
docker run -d \
--name cups-server \
--privileged \
-p 631:631 \
-e ADMIN_PASSWORD=mysecretpassword \
-v cups-config:/etc/cups \
arembez/cups:latest
# Run with custom configuration volume
docker run -d \
--name cups-server \
--privileged \
-p 631:631 \
-v /path/to/cups-config:/etc/cups \
arembez/cups:latest
https://localhost/admin:631Create a docker-compose.yml:
services:
cups:
build: .
container_name: cups-server
privileged: true
ports:
- "631:631"
environment:
- ADMIN_PASSWORD=admin
volumes:
- cups-config:/etc/cups
restart: unless-stopped
volumes:
cups-config:
Then run:
docker compose up -d
This project includes automated Kubernetes deployment with a comprehensive Makefile. The deployment creates:
NAMESPACE)kubectl configured with cluster accessRun on a host with kubectl installed:
# Clone the repository
git clone https://github.com/arembez/cups.git
cd k8s
# Deploy with default settings
make install
# OR Deploy with custom namespace and app name
# make install NAMESPACE=printing APP_NAME=cups-server
The installation process will:
| Command | Description |
|---|---|
make install | Full installation with prerequisites check |
make update | Update/Re-deploy all manifests |
make clean | Remove everything (requires confirmation) |
make logs | Show CUPS logs |
make shell | Open shell in CUPS pod |
make status | Show deployment status |
You can customize the deployment by setting some variables or create a .env file:
NAMESPACE=printing
APP_NAME=cups-server
ADMIN_PASSWORD=mysecurepassword
After deployment, you can access the CUPS web interface:
If LoadBalancer is available:
http://<loadbalancer-ip>:631
If LoadBalancer is not available:
# Port-forward to access locally
kubectl port-forward -n cups svc/cups 631:631
# Then access at http://localhost:631
To apply custom CUPS configuration during deployment:
cupsd.conf file in the same directory as the MakefileThe image includes the following driver packages:
foomatic-db-compressed-ppds - Foomatic printer driversprinter-driver-all - All printer driversopenprinting-ppds - OpenPrinting PPD fileshplip - HP printer drivers# Docker
docker exec -it cups-server bash -c passwd admin
# Kubernetes
kubectl exec -it -n cups deployment/cups -- bash -c passwd admin
This image is distributed under the MIT license.
Issues and pull requests are welcome!
For issues with this Docker image, please open an issue on GitHub.
For CUPS-related issues, refer to the CUPS documentation.
Content type
Image
Digest
sha256:c5a48cdf3…
Size
191.5 MB
Last updated
3 months ago
docker pull arembez/cups