File Server

32892804

Cloud Project Proposal

The purpose of this project is to provide a simple file management system using Infrastructure as a Service (IaaS) on Microsoft Azure. The virtual machine instance will be running Ubuntu Linux. This was chosen because of its strong server support, its free pricing, and its common use in cloud environments, which set it apart from competitors.

This system would allow users to upload and download files from the server, and can also be used simply to store files. The program would consist of three layers: the user interface, which the users interact with to upload or download files. The backend, which would use Flask to upload and retrieve files to download, and the files, which would be stored in the Linux file system. Nginx will act as a reverse proxy and handle incoming HTTP requests when the file server is accessed, as its role is to filter and manage traffic based on the restrictions set.

Using Microsoft Azure to run the VM would enable remote access and can provide high availability, depending on the VM configuration, redundancy settings, resource management and the usage of the web server. To allow users to access the website when setting up the virtual machine, Port 80 would need to be open, which would allow HTTP requests. Port 22 would also need to be open to access the server remotely and set up the file server. This would entail an SSH key to be provided in order to ensure that only users with the key can access the server remotely.

The goal of this process is to provide a file management system that supports basic features such as uploading and downloading files. This is implemented as IaaS rather than on-premises to enable easier scaling if usage increases over time, to ensure the capability to meet demand.

License

This project will be released under Creative Commons Attribution, Non-Commercial CC BY-NC. This license will allow users to view, share and modify the program, as long as appropriate credit is provided for the original author, which covers the Attribution aspect. The Non-Commercial aspect covers the right that this program cannot be redistributed for monetary gain, thereby restricting users from turning it into a program that generates profits. Considering this is an academic project, this Creative Commons licence will allow it to remain open while still allowing users to learn from and modify it.