OPT stands for Open Printing Tunnel is a solution to compress printing stream from TSE
instance to a remote printers.
More screenshots in ./docs/screenshots/.
- backend/: manage OPT containers, usually one per customer (e.g.
opt.coaxis.com
) ;- admin: backend to managed customers and users also provide a REST API ;
- frontend/: web interface to manage daemon containers ;
- daemon/: manage compression channels through the UNIX daemon
mast
andmast-utils
;- api/: REST API to control
mast
daemon andmast-utils
; - frontend/: web interface to manage sites and printers (add, remove, edit, etc.) and check printers status ;
- optbox/: development container to simulate remote device ;
- proxy-web/: proxy requests to frontend or the API.
- api/: REST API to control
- deploy/: scripts for project's deployment ;
- nginx/: main server configuration to reach backend ;
Administrators use the Django admin to:
- create and manage clients ;
- manage employees and their permissions to control daemons ;
Technician employees use the back-office to:
- create and manage daemons' container ;
User | Clients | Daemons | Networks | Admin | Description |
---|---|---|---|---|---|
anonymous |
- | - | - | - | |
employee |
- | - | - | - | |
technician |
✔ | ✔ | - | - | flag to enable on employee |
admin |
✔ | ✔ | ✔ | ✔ |
Employees use front-office to:
- create and manage sites ;
- create and manage printers' tunnel ;
Most of the requirements are managed by the Docker
containers themselves. What you need is a working Docker
environment (i.e. docker
and docker-compose
).
For the host system we recommend Debian-based OS, other distribution are not officially supported. For reference, here is a list of the main requirements:
- Debian
6.0+
or Ubuntu-server16.04+
; docker
≥1.12
;docker-compose
≥1.7.0
;Python
≥3.5
.
From developer computer, run:
$ cd frontend/
$ npm run build
$ cd ../deploy/
$ archive="$(./create_archive.sh | tail -n 1)"
$ ./send-scripts.sh "$archive"
If you need to setup a python environment, please have a look at our short Python and virtualenv doc.
- channels: a port forwarding configuration from datacenter to printer (one per printer) ;
- clients: company that require printing stream compression, may have several sites, each with one or many printers ;
- datacenter: manages TSE instances for differents sites and clients, also manage the
OPT
instance ; - remote devices or sites: a machine at the customer location accessible through Internet by its IP address or FQDN. Each device can be connected to one or more printers locally to forward data streams ;
- tunnels: an SSH's tunnel between the data-center and the remote machine. Can have one or more channels ;
- configuration : are stored in each container in
/etc/mast/$site_id
while the/etc/mast/
directory is a docker volume.
- Backend:
Django
,Flask
; - Containers:
Docker
,docker-compose
,docker-py
; - Daemon:
bash
,make
,trickle
,ssh
,autossh
; - Deployment:
bash
; - Frontend:
Vue.js
,Bootstrap
,webpack
,Express
; - RESTful API:
Django REST framework
,Flask-RESTful
; - Server:
nginx
.