Skip to content

DowlingIT/dowlingit.com

Repository files navigation

DowlingIT.com Web Project

This project is a Next.js-based website for DowlingIT.com, designed to provide a modern, extensible platform for content, blogging, and future automation.

Project Goals

  • 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

Features (Planned & In Progress)

  • 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

Tech Stack

  • Next.js
  • React
  • Node.js
  • Database (TBD, e.g., PostgreSQL, MySQL, or MongoDB)
  • Charting/reporting libraries (TBD)

License

MIT License. See LICENSE for details.

Development Prerequisites / Setup

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-web

Example 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.json

Bring traefik up / down:

sudo docker stack deploy -c docker-compose.yml dev

sudo docker stack rm dev

Setup 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 down

This project is in early development. Contributions and feedback are welcome!

About

Main website (NextJS in docker swarm dev env)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors