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