##################### # Incoming via MQTT # ##################### # Enable MQTT subscriber to receive surveillance images. sc.mqtt.enabled=true # MQTT broker connection URI. sc.mqtt.broker-connection=ssl://localhost:1883 # Global topic filter to subscribe to (may contain wildcards). # Must match all camera specific topics, see below: sc.camera[id].mqtt.topic sc.mqtt.topic-filter=ipcamera/# # Username for connecting to the broker. sc.mqtt.username=username # Password for connecting to the broker. sc.mqtt.password=password #################### # Incoming via FTP # #################### # Enable internal ftp server to receive and process surveillance images. sc.ftp.enabled=true # Ftp server port to use. sc.ftp.port=2121 ################### # Global settings # ################### # Absolute path to the directory to save images. sc.image.storage-dir=/home/surveillance/images/ # Max. width for thumbnail generation. The aspect ratio of the original image will be preserved. sc.image.thumbnail.width=200 # Max. height for thumbnail generation. The aspect ratio of the original image will be preserved. sc.image.thumbnail.height=200 # Quality for thumbnail generation (compression). Valid values are between 0.0 and 1.0, where 0.0 indicates the # minimum quality and 1.0 indicates the maximum quality. sc.image.thumbnail.quality=0.8 # Valid file extensions to accept. Comma separated list. sc.image.valid-extensions=.jpg,.jpeg # Show this amount of images per page. sc.image.page-size=100 # Enable auto deletion of archived images. sc.archive.cleanup.enabled=false # Number of hours to keep before archived images will be deleted. sc.archive.cleanup.keep=72 # Delay in milliseconds between each snapshot URL request used to generate a simple MJPEG stream. # This is only used if streaming (sc.camera[id].stream-enabled) is enabled. sc.stream-generation.mjpeg-delay=500 # The username used to login. sc.security.username=admin # The password used to login. Make sure to change this! # This must be hashed with BCrypt. The default password below is 'password'. sc.security.password=$2a$04$xdRJiiGwwHEbSgs6ucM0DOOCVEUQVaKtB3UPO16.h65sCWzPlkFHC # Internal secret key used to sign the JWT token. # Simply change this to something else, you don't have to remember the secret. sc.security.secret=verySecretKeyChangeMe # Cookie name for the JWT token. sc.security.cookie-name=JWT # Token expiration time in seconds. Default is 30 days (2592000 seconds). sc.security.token-expiration=2592000 # List of available camera ids (comma separated, don't use any special characters). # Each camera id listed here must have it's own configuration key (sc.camera[id]), see below. sc.cameras.available=front,backyard ################### # Camera settings # ################### # This is the main configuration part. Each camera you want to use must be listed in sc.cameras.available # and configured here (camera id in brackets). ### Front door camera ### sc.camera[front].name=Front door # Camera host used for ping health check (see below). Only used when sc.healthcheck.enabled is set to true. sc.camera[front].host=192.168.1.30 # Enable snapshot (live view) for camera. If enabled sc.camera[id].snapshot-url (see below) must be configured. sc.camera[front].snapshot-enabled=true # Enable live stream for camera. If enabled the snapshot url (see below) is used to generate a simple MJPEG stream # by requesting the JPG image periodically. sc.camera[front].stream-enabled=true # URL used to display snapshots (live view). This URL will not be exposed, all requests use the built-in proxy. sc.camera[front].snapshot-url=https://192.168.1.30/snapshot.cgi # Ftp username for incoming images. This is used for camera identification and must be unique! sc.camera[front].ftp.username=camera1 # Ftp password for incoming images. sc.camera[front].ftp.password=password # Incoming ftp directory. This is the place where new surveillance images for this camera will be put for a short # period, until thumbnails are generated and they are moved to sc.image.storage-dir. sc.camera[front].ftp.incoming-dir=/home/surveillance/ftp/camera1/ # MQTT topic to map this camera to. Must be a subset of sc.mqtt.topic-filter. sc.camera[front].mqtt.topic=ipcamera/front ### Backyard camera ### sc.camera[backyard].name=Backyard # Camera host used for ping health check (see below). Only used when sc.healthcheck.enabled is set to true. sc.camera[backyard].host=192.168.1.31 # Enable snapshot (live view) for camera. If enabled sc.camera[id].snapshot-url (see below) must be configured. sc.camera[backyard].snapshot-enabled=true # Enable live stream for camera. If enabled the snapshot url (see below) is used to generate a simple MJPEG stream # by requesting the JPG image periodically. sc.camera[backyard].stream-enabled=true # URL used to display snapshots (live view). This URL will not be exposed, all requests use the built-in proxy. sc.camera[backyard].snapshot-url=http://192.168.1.31/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=username&pwd=password # Ftp username for incoming images. This is used for camera identification and must be unique! sc.camera[backyard].ftp.username=camera2 # Ftp password for incoming images. sc.camera[backyard].ftp.password=password # Incoming ftp directory. This is the place where new surveillance images for this camera will be put for a short # period, until thumbnails are generated and they are moved to sc.image.storage-dir. sc.camera[backyard].ftp.incoming-dir=/home/surveillance/ftp/camera2/ # MQTT topic to map this camera to. Must be a subset of sc.mqtt.topic-filter. sc.camera[backyard].mqtt.topic=ipcamera/backyard ############################## # Push notification settings # ############################## # Enable push notifications. sc.pushnotification.enabled=false # Service adapter to use. There is currently only support for pushover.net, # so you have to create an account over there if you want to receive push notifications. sc.pushnotification.adapter=pushover # Your pushover application api token. sc.pushnotification.api-token=apiTokenPlaceholder # Your pushover user key/token. sc.pushnotification.user-token=userKeyPlaceholder # Group time in minutes. If you have a lot of motion events (images received via FTP), you probably don't # want to get a push notification for each single image. This setting will throttle the amount of notifications # to only one push notification every X minutes (for each camera). # Remove the line below or set it to 0 if you don't want to enable this feature. sc.pushnotification.group-time=2 ######################### # Health check settings # ######################### # Enable health check for camera hosts. # This will be a simple check if the configured host (sc.camera[id].host) is reachable. # When a host changes its state (e.g. going from UP to DOWN or vice versa) a push notification will be sent. # To make this working sc.pushnotification.enabled must be set to true. sc.healthcheck.enabled=false # Interval in milliseconds to perform check (e.g. 300000 for every 5 minutes). sc.healthcheck.interval=300000 # Timeout in milliseconds to wait for hosts. sc.healthcheck.timeout=10000 ############################ # FTP remote copy settings # ############################ # Enable FTP remote copy. All images will be uploaded to an off-site FTP location (backup). sc.remotecopy.ftp.enabled=false # Remote FTP host. sc.remotecopy.ftp.host=external-ftp.local # Target directory on remote FTP. Make sure this directory exists, otherwise upload will fail. sc.remotecopy.ftp.dir=/remote-copy/ # Remote FTP username. sc.remotecopy.ftp.username=username # Remote FTP password. sc.remotecopy.ftp.password=password # Auto cleanup scheduler job for remote FTP uploads. sc.remotecopy.ftp.cleanup-enabled=false # Max disk space to use (quota) in MB. sc.remotecopy.ftp.cleanup-max-disk-space=30000 # Max age in days to keep images. Images older than this value will be deleted. sc.remotecopy.ftp.cleanup-keep=20 ########################################################## # SFTP remote copy settings (SSH File Transfer Protocol) # ########################################################## # Enable SFTP remote copy (backup). All images will be uploaded to an off-site location with the SSH file transfer protocol. sc.remotecopy.sftp.enabled=false # Remote SFTP host. sc.remotecopy.sftp.host=external-sftp.local # Target directory on remote SFTP location. # Make sure this directory exists, otherwise upload will fail. Could be "/" if the root directory should be used. sc.remotecopy.sftp.dir=/remote-copy/ # Remote SFTP username. sc.remotecopy.sftp.username=username # Remote SFTP password. sc.remotecopy.sftp.password=password # Auto cleanup scheduler job for remote SFTP uploads. sc.remotecopy.sftp.cleanup-enabled=false # Max disk space to use (quota) in MB. sc.remotecopy.sftp.cleanup-max-disk-space=30000 # Max age in days to keep images. Images older than this value will be deleted. sc.remotecopy.sftp.cleanup-keep=20 ############### # Data source # ############### # Datasource url. If you want stick to the hsqldb, make sure the file path matches to your environment. # If there is no existing database it will be created for you on application startup. spring.datasource.url=jdbc:hsqldb:file:/home/surveillance/db/surveillance.db # Datasource username. If this is not familiar to you and you simply use the pre-configured hsqldb, # you probably don't want to change anything below. spring.datasource.username=sa spring.jpa.show-sql=false spring.jpa.hibernate.ddl-auto=update ###################### # Actuator endpoints # ###################### # Some actuator endpoints are enabled. # This will expose health, environment and application information at /health, /env and /info. # No further access restriction is enabled, but the global authentication token filter is present. management.security.enabled=false endpoints.enabled=false endpoints.env.enabled=true endpoints.health.enabled=true endpoints.info.enabled=true ########### # Logging # ########### # Logging file and level configuration. There is probably no hassle to change anything. logging.level.com.github._1element=INFO logging.level.org.apache.ftpserver=WARN logging.level.org.apache.ftpserver.impl.PassivePorts=ERROR logging.file=logs/application.log ########## # Server # ########## # HTTP server port to use. server.port=8080 # Context path of the application. server.context-path=/sc ################# # Misc internal # ################# # JSON serialization: proper output for java8 date/time. spring.jackson.serialization.write_dates_as_timestamps=false