{"id":15197059,"url":"https://github.com/cdeck3r/incas","last_synced_at":"2026-03-06T11:31:28.764Z","repository":{"id":114500861,"uuid":"390273469","full_name":"cdeck3r/INCAS","owner":"cdeck3r","description":"Images from Networked Camera System (INCAS) ","archived":false,"fork":false,"pushed_at":"2022-03-21T06:56:18.000Z","size":153,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-02T21:13:22.046Z","etag":null,"topics":["ip-camera","networked-cameras","raspberry-pi-camera","raspberry-pi-zero-w","raspberrypi"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cdeck3r.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-07-28T08:26:34.000Z","updated_at":"2021-10-04T11:40:09.000Z","dependencies_parsed_at":"2023-05-17T09:15:55.114Z","dependency_job_id":null,"html_url":"https://github.com/cdeck3r/INCAS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdeck3r%2FINCAS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdeck3r%2FINCAS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdeck3r%2FINCAS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdeck3r%2FINCAS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cdeck3r","download_url":"https://codeload.github.com/cdeck3r/INCAS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241570921,"owners_count":19984002,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ip-camera","networked-cameras","raspberry-pi-camera","raspberry-pi-zero-w","raspberrypi"],"created_at":"2024-09-28T00:40:33.903Z","updated_at":"2026-03-06T11:31:28.718Z","avatar_url":"https://github.com/cdeck3r.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Images from Networked Camera System (INCAS) \n\nThis project collects and stores images from multiple ONVIF compatible IP cameras. \nThese images serve as input to the [Social Reporter](https://github.com/cdeck3r/Social-Reporter) - an AI based image selection and composition system for generating social media content about lectures at the [HHZ](https://www.hhz.de/master/digital-business-engineering/).\n\nThe project is under development. See current activities on the its [Trello board](https://trello.com/b/AOATCM0o)\n\n## Usage\n\nINCAS is completely web-based. Point your browser to the URL of the INCAS server.\n\n## Design \n\nThe following UML usecase diagram provides an impression on INCAS's main services. The [docs](docs/) directory contains the full documentation.\n\n![INCAS usecase diagram](http://www.plantuml.com/plantuml/png/KypCIyufJKajBSfHo2WfAIYsqjSlIYpNIyyioIXDAYrEBKhEpoj9pIlHIyxFrKzEIKtEDYxIz_HpTWpMpqtCpDDFoKykrYzDZWUQarYiLr9H0W00)\n\n## Hardware \n\nINCAS uses  \n\n* multiple IPC-G22 Wifi IP cameras\n* Raspberry Pi Zero W\n\n**Initial setup**\n\n* [Headless Pi Zero W Wifi Setup (Windows)](https://desertbot.io/blog/headless-pi-zero-w-wifi-setup-windows)\n* Access a brand-new IPC-G22 on http://192.168.1.108, configure an admin password and import the [default config file](install/defaultConfigFile.backup). It does not contain any network setup. You may want to configure your network settings.\n* Configure `incas` user to take snapshots\n    * Create group `snapshot` with permissions \n        * Live\n        * Event\n    * Create user `incas` and assign to group `snapshot`\n\nFor the correct Raspi wifi setup, you may want to look at\n\n* https://www.raspberrypi.org/documentation/configuration/wireless/headless.md\n* https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md\n\nThe last link outline various methods to use the `wpa_passphrase` utility to generate an encrypted PSK. The [dev system](#dev-system) contains the `wpa_passphrase` utility.\n\n## Software Setup\n\nOn the Raspi, login as regular user (i.e. not root) and run the command below. It will install the software in `$HOME/incas` on the Raspi:\n\n```bash\nbash \u003c(curl -s https://raw.githubusercontent.com/cdeck3r/INCAS/main/install/install.sh)\n```\n\n**Note:** During the initial setup, if no `$HOME/incas/config.yml` was found, the script generates a random password for the `incas` user submitted to the IP camera when taking snapshots. You may want to take the generated password from the `config.yml` and set it as password for the `incas` user in the [hardware setup](#hardware).\n\nIf the `config.yml` exists, the password remains untouched.\n\nAdditionally, one may run [`install_config.sh`](install/install_config.sh) separately on the Raspi CLI and provide a password as argument. The script will update the password in the `config.yml`.\n\n\nThe raspi may report its IP address to an external webserver. This is helpful, if one expects a new IP lease in a DHCP controlled network. The [`install_callingHome.sh`](install/install_callingHome.sh) script installs a cronjob which issues an hourly http request. A developer may check the webserver's access log for the IP address. \n\nThe target webserver is expected to be defined in `/boot/incas.ini`. Format is by example:\n\n```\n#\n# incas.ini\n#\n# This is a key/value file containing non-public information. \n# It is separated from the incas installation and directory \n# structure to avoid an unintended repo commit.\n#\n# Default: /boot/incas.ini\n# \n\n# Raspi discovery tracker\nTRACKER_NWEB=\"\u003cinsert URL here\u003e\"\n\n```\n\n## Dev system\n\n**Setup:** Start in project's root dir and create a `.env` file with the content shown below.\n```\n# .env file\n\n# In the container, this is the directory where the code is found\n# Example:\nAPP_ROOT=/INCAS\n\n# the HOST directory containing directories to be mounted into containers\n# Example:\nVOL_DIR=/home/myusername/INCAS\n```\n\n**Create** docker image. Please see [Dockerfiles/Dockerfile.incas-dev](Dockerfiles/Dockerfile.incas-dev) for details.\n```bash\ndocker-compose build incas-dev\n```\n\n**Spin up** the container and get a shell from the container\n```bash\ndocker-compose up -d incas-dev\ndocker exec -it incas-dev /bin/bash\n```\n\n## License\n\nInformation provided in the [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdeck3r%2Fincas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcdeck3r%2Fincas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdeck3r%2Fincas/lists"}