Skip to content

Latest commit

Β 

History

History
80 lines (47 loc) Β· 1.51 KB

File metadata and controls

80 lines (47 loc) Β· 1.51 KB

Simple Backup Web App (Self-Hosted)

A lightweight self-hosted backup web application built using Node.js, Express, and Multer, deployed on a personal Ubuntu home server (old laptop).

This project allows file uploads to a local server directory and provides HTTP access to uploaded files.


πŸš€ Project Overview

This application was built as part of a home server setup project to:

  • Practice backend development
  • Learn Linux server management
  • Implement file upload handling
  • Understand static file serving
  • Deploy and manage applications on Ubuntu

πŸ›  Tech Stack

  • Node.js
  • Express.js
  • Multer (File Upload Handling)
  • dotenv (Environment Variables)
  • Ubuntu Desktop (Home Server)
  • CORS

πŸ“‚ How It Works

  • Files are uploaded using multipart/form-data
  • Files are stored inside a configured server directory
  • Uploaded files are accessible via:

βš™οΈ Environment Configuration

πŸ§ͺ Running the Project

  1. Install dependencies npm install

  2. Start the server node server.js

Server runs at: http://localhost:5000

πŸ” Security Notes

This is a personal learning project. If exposed to the internet, improvements should include:

  • Authentication (JWT or sessions)

  • File type validation

  • Rate limiting

  • HTTPS (Nginx + Let's Encrypt)

  • Private file access control

UI

alt text

Deployment Notes

This app is deployed on a home server using Docker Compose and a self-hosted GitHub Actions runner.

πŸ‘¨β€πŸ’» Author

Mark Lester Laroya