feat: initialize backend environment with Docker setup and configuration files
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,6 +1,3 @@
|
|||||||
backend/.env
|
|
||||||
# Ignore environment files
|
|
||||||
|
|
||||||
index.html
|
index.html
|
||||||
# Ignore frontend dev file
|
# Ignore frontend dev file
|
||||||
|
|
||||||
|
30
README.md
30
README.md
@@ -0,0 +1,30 @@
|
|||||||
|
# Login page
|
||||||
|
This is an app which I am currently working on...
|
||||||
|
|
||||||
|
## How to run?
|
||||||
|
1. Install docker on your machine
|
||||||
|
2. Then run the docker-compose file and make sure that port ```4000``` and ```3306``` are not in use.
|
||||||
|
3. Then enter the mysql container (exec) with the credentials that you can see in the ```docker-compose.yml``` file and in the ```.env``` file.
|
||||||
|
4. Then login with the root user with ```mysql -u root -p```, after that enter the password from the ```docker-compose.yml``` file or the ```.env``` file.
|
||||||
|
5. Then type ```use login_page;```
|
||||||
|
6. Then create a table with the following scheme (extract from scheme.sql):
|
||||||
|
``` sql
|
||||||
|
-- Table structure for the database
|
||||||
|
CREATE TABLE users (
|
||||||
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
username VARCHAR(50) NOT NULL UNIQUE,
|
||||||
|
first_name VARCHAR(50) NOT NULL,
|
||||||
|
last_name VARCHAR(50) NOT NULL,
|
||||||
|
email VARCHAR(100) NOT NULL UNIQUE,
|
||||||
|
password VARCHAR(255) NOT NULL,
|
||||||
|
created TIMESTAMP NOT NULL DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Mock data for users
|
||||||
|
INSERT INTO users (username, first_name, last_name, email, password)
|
||||||
|
VALUES
|
||||||
|
('test1', 'John', 'Doe', 'jdoe@example.com', '1test'),
|
||||||
|
('test2', 'Alice', 'Smith', 'asmith@example.com', '2test');
|
||||||
|
```
|
||||||
|
|
||||||
|
If you are confident with sql you can change the mock data, and create your own user.
|
4
backend/.env
Executable file
4
backend/.env
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
DB_HOST=mysql
|
||||||
|
DB_USER=root
|
||||||
|
DB_PASSWORD=D7Ze0lwV9hMrNQHdz1Q8yi0MIQuOO8
|
||||||
|
DB_NAME=login_page
|
12
backend/Dockerfile
Normal file
12
backend/Dockerfile
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
FROM node:18
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY package*.json ./
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
EXPOSE 4000
|
||||||
|
|
||||||
|
CMD ["npm", "start"]
|
@@ -0,0 +1,33 @@
|
|||||||
|
version: '3.9'
|
||||||
|
|
||||||
|
services:
|
||||||
|
backend:
|
||||||
|
container_name: login-page
|
||||||
|
build: ./backend
|
||||||
|
ports:
|
||||||
|
- "4000:4000"
|
||||||
|
environment:
|
||||||
|
DB_HOST: mysql
|
||||||
|
DB_USER: root
|
||||||
|
DB_PASSWORD: D7Ze0lwV9hMrNQHdz1Q8yi0MIQuOO8
|
||||||
|
DB_NAME: login_page
|
||||||
|
depends_on:
|
||||||
|
- mysql
|
||||||
|
volumes:
|
||||||
|
- ./backend:/app
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
mysql:
|
||||||
|
container_name: mysql-db
|
||||||
|
image: mysql:8.0
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: D7Ze0lwV9hMrNQHdz1Q8yi0MIQuOO8
|
||||||
|
MYSQL_DATABASE: login_page
|
||||||
|
volumes:
|
||||||
|
- mysql-data:/var/lib/mysql
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
mysql-data:
|
||||||
|
Reference in New Issue
Block a user