This project is a Next.js-based website for DowlingIT.com, designed to provide a modern, extensible platform for content, blogging, and future automation.
- Build a fast, modern web presence using Next.js
- Start with basic static pages and a simple blog
- Add user authentication and logins over time
- Implement database persistence for tracking site accesses and analytics
- Integrate automation and reporting features using modern integration tools
- Develop attractive charts and reports for site data
- Basic static pages (Home, About, Contact)
- Blogging functionality
- User authentication (logins)
- Database integration for analytics
- Automation and integration with external tools
- Data visualization and reporting
- Next.js
- React
- Node.js
- Database (TBD, e.g., PostgreSQL, MySQL, or MongoDB)
- Charting/reporting libraries (TBD)
MIT License. See LICENSE for details.
I do much of my development in docker swarm containers and with Traefik as a reverse proxy. Any prereqs are captured by the docker images. But can require a little bit of setup. Traefik and the docker networks are not managed by this project. Docker compose is used - but only to build the image into a local registry (in the startup script). You'll need:
- Git
- Docker Swarm & Compose
- DNS entries for traefik and for your development site
Below are examples for a typical setup. Adapt as needed / desired.
Init swarm and setup external networks
sudo docker swarm init;
sudo docker network ls
sudo docker network rm ingress
sudo docker network create --ingress --driver overlay --opt encrypted --subnet 10.10.0.0/16 ingress
sudo docker network create --subnet 10.200.0.0/16 --driver overlay --scope swarm --opt encrypted --attachable cloud-edge
sudo docker network create --subnet 10.201.0.0/16 --driver overlay --scope swarm --opt encrypted --attachable cloud-socket-proxy
sudo docker network create --subnet 10.202.0.0/16 --driver overlay --scope swarm --opt encrypted --attachable swarm-webExample traefik configuration files for swarm are present in the traefik folder. I would recommend copying them to a location of your choice. There are a number of edits that you'll need to make to get these to work under your domain (look for [brackets where things need to change]). Traefik is setup to automatically get certs from Let's Encrypt.
Once you have copied the traefik files over, before you start swarm, create an acme.json file. Setting the correct permissions is important.
sudo touch /[your dir]/acme.json
sudo chmod 600 /[your dir]/acme.jsonBring traefik up / down:
sudo docker stack deploy -c docker-compose.yml dev
sudo docker stack rm devSetup your .env file based on .env.example
To start and stop the development stack:
sudo ./stack-cmd.sh up
# when running acces the containers the usual way:
sudo docker exec -it [container] [some cmd]
example: sudo docker exec -it abc12345 ash
sudo ./stack-cmd.sh downThis project is in early development. Contributions and feedback are welcome!