Software in this repo includes two services:
-
camera-webservice: Web service that exposes a RESTful API to use a local webcam to take a photo, upload it to an S3 target, and posts metadata to ElasticSearch. The service is written in Python and configured using a json formatted conf file. This service can be deployed on a raspberry pi or your laptop.
-
webapp: Web app that queries ElasticSearch for available cameras and existing photos and displays them. Also allows taking new photos by calling the RESTful API of the camera-webservice. This app is written in Ruby and includes a Dockerfile for containerized use.
The hack-night is intended to be a lightly structured event designed to allow hackers to explore, innovate and learn. The following instructions are provided as general roadmap to provide some structure.
- Google and YouTube are your best friends. If you have a question, are getting an error message, or need to learn something, then google first
- If you then get stuck, ask your teammates
- If you are still stuck, ask a hack-night lead for help
As with any tech challenge proceed in steps and verify all is well (including your knowledge) before continuing.
- Build your Raspberry Pi and access it via SSH. What linux does it run? Is your internet access working? Use
curl
to readhttp://www.google.com
- Setup your S3 bucket on the StorageGrid Webscale system:
- Install a S3 browser tool like "S3 browser" for Windows or "CyberDuck" for Mac
- Create a bucket for your Pi using the credentials supplied; pick a bucket name that is unique for your team
- Use your S3 client to put stuff in the bucket and get it out
- Try to access the stuff in the bucket from your web browser. What URL would you use? Do you get access denied? Then set the bucket_policy.json to allow anonymous
read
andlist
anonymous access to objects and try again. - Note: CyberDuck won't allow you to set Bucket Policies, so you will have to do this another way. Ask Clemens if you can't google it :-) (Hint: s3cmd or aws cli)
- Find the steps here: camera-webservice/
- Find the steps here: webapp/
Can you take photos from your camera using the webapp and see the results? Yes, Success!
The repository has a file called OtherHackerIdeas.md. Attack one of those idea or come up with your own.