
CUPS Server-Side Release Setup
- or -
Post a project like this28
£30(approx. $40)
- Posted:
- Proposals: 8
- Remote
- #4474987
- Open for Proposals
Data Science & Machine Learning Engineer | Web App developer | AI Application Development
1172949112987955142971327308053824196123085901302153511193042
Description
Experience Level: Entry
1. Base Environment
Create an isolated environment for printing (dedicated VM preferred, otherwise constrained container or host service).
Confirm AlmaLinux 9.x, hostname, internal DNS, and time sync.
Outcome: print stack is isolated from web, mail, and Nextcloud workloads.
2. Install Core Packages
Install CUPS, cups-filters, IPP support packages, and PDF utilities (e.g. poppler-utils, qpdf).
Disable unused print backends.
Outcome: cupsd is running and reachable locally.
3. Secure Transport (IPPS)
Enable IPP over TLS (IPPS on port 631).
Generate or import TLS certificates.
Disable non-TLS IPP access.
Restrict firewall access to trusted networks.
Outcome: all printing occurs over IPPS.
4. CUPS Core Configuration
Configure cupsd.conf to restrict admin access, disable unnecessary sharing, and set sensible logging levels.
Define job limits (MaxJobs, MaxJobsPerUser) to avoid runaway queues.
Outcome: CUPS accepts jobs securely and predictably.
5. Printer Setup
Add physical printers as device queues (IPP preferred).
Verify printing and media support for each printer.
Apply a consistent naming convention.
Outcome: all printers are reachable and functional.
6. Logical / Hold Queues
Create logical hold queues (per tenant or site).
Ensure jobs are held on submission and do not print automatically.
Outcome: jobs reliably enter a held state awaiting release.
7. Default Printer Routing Logic
Define default printer mappings per user, group, or site.
Implement printer health checks.
Attempt automatic release only when the default printer is healthy; otherwise leave the job held.
Outcome: jobs print automatically when safe, and never fail silently.
8. Manual Fallback Release
Provide a mechanism to manually release jobs to an alternative printer.
Ensure jobs are either re-routed cleanly or duplicated and cleaned up correctly.
Outcome: users can recover from printer failures without reprinting.
9. Release Portal
Deploy a lightweight web portal.
Implement authentication (OIDC, LDAP, or local as appropriate).
Allow users to view, release, re-route, or delete their own jobs.
Provide basic admin views for printer status and default mappings.
Outcome: users self-manage held jobs securely.
10. Job Retention & Cleanup
Automatically purge unreleased jobs after a short expiry window.
Delete job files immediately after successful printing.
Disable long-term job and file preservation.
Outcome: no print data is retained beyond operational need.
11. Resource Protection
Apply CPU, memory, and I/O limits to print services.
Ensure print workloads cannot starve web hosting, SMTP, or Nextcloud.
Outcome: other services remain responsive under print load.
12. Security Hardening
Restrict access to spool directories.
Enforce per-user job visibility in the portal.
Prevent direct access to job content.
Disallow silent automatic rerouting to other printers.
Outcome: print data remains private and controlled.
13. Routing Rules (Optional)
Implement routing by page size (A4 vs A3) or page count if required.
Ensure routing behaviour is visible and predictable.
Outcome: advanced routing works without surprises.
14. Monitoring & Health Checks
Monitor queue depth, failed jobs, and printer availability.
Alert on sustained queue growth or repeated errors.
Outcome: issues are detected before users are impacted.
15. Validation
Test normal printing, printer failure handling, manual fallback, and job expiry.
Confirm no performance degradation to web hosting, mail, or Nextcloud.
Outcome: behaviour matches requirements under load.
Final Acceptance Statement
Print jobs are securely held, released to a default printer when available, manually re-released when not, automatically cleaned up, and isolated so they do not impact other server services.
Create an isolated environment for printing (dedicated VM preferred, otherwise constrained container or host service).
Confirm AlmaLinux 9.x, hostname, internal DNS, and time sync.
Outcome: print stack is isolated from web, mail, and Nextcloud workloads.
2. Install Core Packages
Install CUPS, cups-filters, IPP support packages, and PDF utilities (e.g. poppler-utils, qpdf).
Disable unused print backends.
Outcome: cupsd is running and reachable locally.
3. Secure Transport (IPPS)
Enable IPP over TLS (IPPS on port 631).
Generate or import TLS certificates.
Disable non-TLS IPP access.
Restrict firewall access to trusted networks.
Outcome: all printing occurs over IPPS.
4. CUPS Core Configuration
Configure cupsd.conf to restrict admin access, disable unnecessary sharing, and set sensible logging levels.
Define job limits (MaxJobs, MaxJobsPerUser) to avoid runaway queues.
Outcome: CUPS accepts jobs securely and predictably.
5. Printer Setup
Add physical printers as device queues (IPP preferred).
Verify printing and media support for each printer.
Apply a consistent naming convention.
Outcome: all printers are reachable and functional.
6. Logical / Hold Queues
Create logical hold queues (per tenant or site).
Ensure jobs are held on submission and do not print automatically.
Outcome: jobs reliably enter a held state awaiting release.
7. Default Printer Routing Logic
Define default printer mappings per user, group, or site.
Implement printer health checks.
Attempt automatic release only when the default printer is healthy; otherwise leave the job held.
Outcome: jobs print automatically when safe, and never fail silently.
8. Manual Fallback Release
Provide a mechanism to manually release jobs to an alternative printer.
Ensure jobs are either re-routed cleanly or duplicated and cleaned up correctly.
Outcome: users can recover from printer failures without reprinting.
9. Release Portal
Deploy a lightweight web portal.
Implement authentication (OIDC, LDAP, or local as appropriate).
Allow users to view, release, re-route, or delete their own jobs.
Provide basic admin views for printer status and default mappings.
Outcome: users self-manage held jobs securely.
10. Job Retention & Cleanup
Automatically purge unreleased jobs after a short expiry window.
Delete job files immediately after successful printing.
Disable long-term job and file preservation.
Outcome: no print data is retained beyond operational need.
11. Resource Protection
Apply CPU, memory, and I/O limits to print services.
Ensure print workloads cannot starve web hosting, SMTP, or Nextcloud.
Outcome: other services remain responsive under print load.
12. Security Hardening
Restrict access to spool directories.
Enforce per-user job visibility in the portal.
Prevent direct access to job content.
Disallow silent automatic rerouting to other printers.
Outcome: print data remains private and controlled.
13. Routing Rules (Optional)
Implement routing by page size (A4 vs A3) or page count if required.
Ensure routing behaviour is visible and predictable.
Outcome: advanced routing works without surprises.
14. Monitoring & Health Checks
Monitor queue depth, failed jobs, and printer availability.
Alert on sustained queue growth or repeated errors.
Outcome: issues are detected before users are impacted.
15. Validation
Test normal printing, printer failure handling, manual fallback, and job expiry.
Confirm no performance degradation to web hosting, mail, or Nextcloud.
Outcome: behaviour matches requirements under load.
Final Acceptance Statement
Print jobs are securely held, released to a default printer when available, manually re-released when not, automatically cleaned up, and isolated so they do not impact other server services.
Jason B.
100% (113)Projects Completed
110
Freelancers worked with
59
Projects awarded
20%
Last project
5 Feb 2026
United Kingdom
New Proposal
Login to your account and send a proposal now to get this project.
Log inClarification Board Ask a Question
-
There are no clarification messages.
We collect cookies to enable the proper functioning and security of our website, and to enhance your experience. By clicking on 'Accept All Cookies', you consent to the use of these cookies. You can change your 'Cookies Settings' at any time. For more information, please read ourCookie Policy
Cookie Settings
Accept All Cookies
