NOTE: The server was successfully created and deployed. Once verified by Udacity's code reviewer, I took down the server to save cost. I have carefully detailed all steps I took, so re-deploying should not be too difficult.
A project where I've created a server, configured a firewall, and deployed an application to the server (used Amazon Lightsail, Ubuntu, and Flask). Part of the Udacity Full Stack Web Developer Nanodegree.
I deployed the Item Catalog project (which can still be run locally).
- Apache HTTP Server
- PostgreSQL
- Git
- Flask
- SQLAlchemy
- Updated all installed packages on Ubuntu
- Configured the firewalls (Lightsail and UFW)
- SSH (port 2200)
- HTTP (port 80)
- NTP (port 123)
- Created a user called
grader- Gave
gradersudoaccess - Also created an SSH key pair for
grader, and forced key-based authentication
- Gave
- Configured the local timezone to UTC (was already set to UTC)
- Configured Apache to handle requests using the WSGI module
- Configured PostgreSQL, creating a limited user named
catalog- Ensured that remote connections are not allowed
- Configured Git
- Set up and deployed the Item Catalog project
- Change the SSH port from 22 to 2200
- Configure NTP
- Connect to my instance using SSH
- Set up PostgreSQL
- Set up Git
- Not allow remote connections to postgres database
- Use PostgreSQL instead of SQLite
- Deploy a Flask application on Ubuntu