hackgvl / events-api

API for Greenville Tech Calendar events
MIT License
11 stars 6 forks source link

Developer Documentation and Migration to New Server #14

Closed allella closed 5 years ago

allella commented 5 years ago

@Jonessg1Wofford @bikeoid @meenasrik @jonahmoore17 @ (I don't know Killian's handle). If the conversation is of interest then please subscribe to this issue for future updates.

I'll share a cleaned up version of notes from our hangout with @Nunie123 and we can take it from there.

allella commented 5 years ago

@Jonessg1Wofford @bikeoid @meenasrik @jonahmoore17 @Nunie123 @pax-man Here are notes from last Tuesday. Please post any additional notes or corrections.

If you're interested in helping co-maintain this project then please connect on this thread. If you're not interested then you should be able to unsubscribe using the button on GitHub.

Hosting

General Application Notes

Meetup.com and Eventbrite APIs

Environment / Configuration

Deployment

Setting Up a Development Environment

Next Steps (Jim will create Issues as Needed)

allella commented 5 years ago

With initial pointers from Derek Wright on the HG Slack channel, parts of the documentation, notes from this thread, and figuring some things on my own, it's working and now migrated. @Nunie123 you can terminate the Heroku instance.

This is hosted on the same server as data.openupstate.org and the new API endpoint is https://events.openupstate.org/api/gtc

Initial setup notes are now a bit more complete regarding running a gunicorn localhost WSGI server.

The API consuming sites I'm aware of are working again.

I ended up setting up an env with Miniconda, setup gunicorn as a systemd using a UNIX domain socket (UDS) instead of TCP, then used Apache's ProxyPass to pipe the /api traffic to the gunicorn daemon socket file, and then had to do so damn SELinux magic to get all the context and policies right to allow Apache to talk to the socket.

UDS is always a pain in the but and triggers SELinux permissions and policy eye-stabbing, but it's theoretically faster than a TCP proxy and perhaps more secure by limiting access to a Linux user/group, which would otherwise be open to any user on the localhost port.

I'll possibly write up Apache config stuff since there's a lot less Apache + Python docs on the web.

allella commented 5 years ago

@MarkMcDaniels @bcsnipes @meenasrik and anybody else, there are more specific notes for setting up Python development environment, via Miniconda, in the deploy README file https://github.com/codeforgreenville/upstate_tech_cal_service/blob/master/deploy_notes_initial.md