163 lines
5.6 KiB
Markdown
163 lines
5.6 KiB
Markdown
# Env. Vars
|
|
|
|
DUPLICATE_BILL_TO_VENDOR => If set to true, a copy of the bill will be sent to Vendors/{Vendor Name}/{Invoice Number}/{filename.extension}. Default to false.
|
|
|
|
MEDIA_PATH => Must match the mount directory of the volume. e.g.
|
|
volumes: - ~:/root - "/Users/pfic/Desktop/ISM:/media"
|
|
environment: - MEDIA_PATH=/media
|
|
|
|
IMS_TOKEN => This will be validated on every request. If it is not sent, the request will be rejected.
|
|
|
|
# Operations
|
|
|
|
## Bills
|
|
|
|
By default, it will query from the job files. Anything duplicated to the vendor files is purely for reference.
|
|
If an invoice number is included, it will be default fetch that file only.
|
|
|
|
When looking at the bills, it will look in the bills folder of the job for an invoice that has a name that includes the invoice number. If not found, it will not show anythign.
|
|
Deleting the bill or job will not delete the media.
|
|
|
|
Batch file has to be included with partner. Reg file has to be run in order for it to work.
|
|
|
|
Caddy is used as a reverse HTTPS proxy so that CORS does not block requests. This must sit in the same dir as the docker-compose.yml file.
|
|
|
|
```markdown
|
|
domain.com {
|
|
reverse_proxy ims:8000
|
|
}
|
|
```
|
|
|
|
## Sample Docker Compose file
|
|
|
|
```docker
|
|
version: '2'
|
|
|
|
services:
|
|
traefik:
|
|
container_name: traefik-ims
|
|
image: traefik:latest
|
|
restart: always
|
|
init: true
|
|
command: # CLI arguments
|
|
- --global.checkNewVersion=true
|
|
- --global.sendAnonymousUsage=false
|
|
- --entrypoints.https.address=:10443
|
|
- --entrypoints.https.forwardedHeaders.trustedIPs=173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/12,172.64.0.0/13,131.0.72.0/22,2400:cb00::/32,2606:4700::/32,2803:f800::/32,2405:b500::/32,2405:8100::/32,2a06:98c0::/29,2c0f:f248::/32
|
|
- --log=true
|
|
- --log.level=ERROR # (Default: error) DEBUG, INFO, WARN, ERROR, FATAL, PANIC
|
|
- --providers.docker=true
|
|
- --providers.docker.exposedbydefault=false
|
|
- --providers.docker.network=traefik_proxy
|
|
- --certificatesResolvers.dns-cloudflare.acme.email=cloudflare@thinkimex.com
|
|
- --certificatesResolvers.dns-cloudflare.acme.storage=/acme.json
|
|
- --certificatesResolvers.dns-cloudflare.acme.keyType=EC384
|
|
- --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.provider=cloudflare
|
|
- --certificatesresolvers.dns-cloudflare.acme.dnschallenge.resolvers=1.1.1.1:53,1.0.0.1:53,2606:4700:4700::1111:53,2606:4700:4700::1001:53
|
|
- --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.delayBeforeCheck=90 # To delay DNS check and reduce LE hitrate
|
|
networks:
|
|
traefik_proxy:
|
|
ipv4_address: 192.168.90.254
|
|
ports:
|
|
- target: 10443
|
|
published: 10443
|
|
protocol: tcp
|
|
mode: host
|
|
environment:
|
|
- TZ=America/Vancouver
|
|
- CF_API_EMAIL=cloudflare@thinkimex.com
|
|
- CF_DNS_API_TOKEN=b8BWRbkJckVK0IG6600Iq5AYx4HYZ7dLzDWUOZ2D
|
|
volumes:
|
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
- /home/imex/ims/traefik/acme/acme.json:/acme.json # cert location - you must touch this file and change permissions to 600
|
|
labels:
|
|
- "traefik.enable=false"
|
|
cf-ddns:
|
|
container_name: cf-ddns
|
|
image: oznu/cloudflare-ddns:latest
|
|
networks:
|
|
- traefik_proxy
|
|
restart: always
|
|
environment:
|
|
- API_KEY=b8BWRbkJckVK0IG6600Iq5AYx4HYZ7dLzDWUOZ2D
|
|
- ZONE=imexmedia.ca
|
|
- SUBDOMAIN=fastrack
|
|
- PROXIED=false
|
|
- RRTYPE=A
|
|
- DELETE_ON_STOP=false
|
|
- DNS_SERVER=1.1.1.1
|
|
labels:
|
|
- "traefik.enable=false"
|
|
ims:
|
|
container_name: ims
|
|
networks:
|
|
- traefik_proxy
|
|
volumes:
|
|
- /mnt/ims:/media
|
|
environment:
|
|
- MEDIA_PATH=/media
|
|
- DUPLICATE_BILL_TO_VENDOR=true
|
|
- IMS_TOKEN=6Q9pjF5wFQ2grGyom2rvRPXnkKZDA3BvfNK2J5qQXVuyxTFhjHVX6zwWeYDw3GLAk
|
|
- CONVERT_QUALITY=0.8
|
|
- KEEP_CONVERTED_ORIGINALS=TRUE
|
|
image: imexonline/media-server:latest
|
|
restart: always
|
|
labels:
|
|
- "traefik.enable=true"
|
|
# HTTP Routers
|
|
- "traefik.http.routers.ims-rtr.entrypoints=https"
|
|
- "traefik.http.routers.ims-rtr.rule=Host(`fastrack.imexmedia.ca`)"
|
|
- "traefik.http.routers.ims-rtr.tls.certresolver=dns-cloudflare"
|
|
## HTTP Services
|
|
- "traefik.http.routers.ims-rtr.service=ims-svc"
|
|
- "traefik.http.services.ims-svc.loadbalancer.server.port=8000"
|
|
dozzle:
|
|
container_name: logs
|
|
image: amir20/dozzle:latest
|
|
restart: always
|
|
networks:
|
|
- traefik_proxy
|
|
ports:
|
|
- "8080:8080"
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
environment:
|
|
DOZZLE_LEVEL: info
|
|
DOZZLE_TAILSIZE: 300
|
|
DOZZLE_FILTER: "status=running"
|
|
DOZZLE_NO_ANALYTICS: "true"
|
|
watchtower:
|
|
container_name: watchtower-ims
|
|
image: containrrr/watchtower
|
|
networks:
|
|
- traefik_proxy
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
environment:
|
|
- TZ=America/Vancouver
|
|
- WATCHTOWER_CLEANUP=true
|
|
- WATCHTOWER_REMOVE_VOLUMES=true
|
|
- WATCHTOWER_INCLUDE_STOPPED=true
|
|
- WATCHTOWER_INCLUDE_RESTARTING=true
|
|
- WATCHTOWER_NO_STARTUP_MESSAGE=false
|
|
- WATCHTOWER_REVIVE_STOPPED=true
|
|
- WATCHTOWER_ROLLING_RESTART=true
|
|
- WATCHTOWER_TIMEOUT=60s
|
|
- WATCHTOWER_POLL_INTERVAL=3600
|
|
restart: unless-stopped
|
|
labels:
|
|
- "traefik.enable=false"
|
|
|
|
networks:
|
|
traefik_proxy:
|
|
name: traefik_proxy
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 192.168.90.0/24
|
|
```
|