A simple, containerized todo application built with Node.js, Express, MongoDB, and Docker Compose. Perfect for learning Docker multi-container applications and modern web development.
- ✅ Create, view, and delete todos
- 🐳 Fully containerized with Docker Compose
- 🔄 Hot reload development environment
- 📱 Responsive Bootstrap UI
- ⏰ Todo timestamps with moment.js
- 🗄️ MongoDB persistence
- Backend: Node.js, Express.js
- Database: MongoDB
- Frontend: EJS templating, Bootstrap 4
- Development: Nodemon, LiveReload
- Containerization: Docker, Docker Compose
-
Clone the repository
git clone <your-repo-url> cd multi-container-app
-
Start the application
docker compose up -d
-
Open your browser Navigate to http://localhost:3000
-
Stop the application
docker compose down
For development with hot reload:
docker compose up
The app will automatically reload when you make changes to the code.
├── app/
│ ├── config/ # Database configuration
│ ├── models/ # Mongoose models
│ ├── routes/ # Express routes
│ ├── views/ # EJS templates
│ ├── server.js # Main server file
│ ├── package.json # Node dependencies
│ └── Dockerfile # App container config
├── compose.yaml # Docker Compose configuration
└── README.md
- todo-app: Node.js application (port 3000)
- todo-database: MongoDB database (port 27017)
ISC