Skip to content

Commit

Permalink
Docker compose for local mongodb
Browse files Browse the repository at this point in the history
  • Loading branch information
villepynttari committed Jun 20, 2024
1 parent fa2431b commit 47ed7a7
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 16 deletions.
3 changes: 3 additions & 0 deletions backend/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ DB_PASSWORD=""
# Database url
DB_URL=""

#Overrides whole url for local development (mongodb://getaroom:getaroom@localhost/getaroom?retryWrites=true&w=majority)
DB_OVERRIDE_URL=""

# Secret for JWT token, could be any long random string
JWT_SECRET=""

Expand Down
21 changes: 17 additions & 4 deletions backend/src/utils/config.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
import webpush from 'web-push';

export const getDatabaseUrl = () => {
const { DB_USER, DB_NAME, DB_PASSWORD, DB_URL } = process.env;
return createDatabaseUrl(DB_USER, DB_NAME, DB_PASSWORD, DB_URL);
const { DB_USER, DB_NAME, DB_PASSWORD, DB_URL, DB_OVERRIDE_URL } =
process.env;
const databaseUrl = createDatabaseUrl(
DB_USER,
DB_NAME,
DB_PASSWORD,
DB_URL,
DB_OVERRIDE_URL
);
console.log(`Connecting to database: ${databaseUrl}`);
return databaseUrl;
};

export const createDatabaseUrl = (
dbUser?: string,
dbName?: string,
dbPassword?: string,
dbUrl?: string
dbUrl?: string,
dbOverrideUrl?: string
) => {
if (!dbUser) {
throw new Error('Database user not defined');
Expand All @@ -24,7 +34,10 @@ export const createDatabaseUrl = (
throw new Error('Database name not defined');
}

return `mongodb+srv://${dbUser}:${dbPassword}@${dbUrl}/${dbName}?retryWrites=true&w=majority`;
if (dbOverrideUrl && dbOverrideUrl !== '') {
return dbOverrideUrl;
}
return `mongodb+srv://${dbUser}:${dbPassword}@${dbUrl}/${dbName}?retryWrites=true&w=majority}`;
};

export const setupVapidDetails = () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# MongoDB Environment
MONGO_INITDB_DATABASE=getaroom
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=testroot
MONGO_EXPRESS_USERNAME=admin
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
version: '3.9'

services:
mongodb:
image: mongo:latest
container_name: mongodb
hostname: mongodb
volumes:
- mongodb-data:/data/db/
- mongodb-log:/var/log/mongodb/
- ./mongodb/initdb.d/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
env_file:
- .env
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE}
ports:
- '27017:27017'
networks:
Expand All @@ -36,14 +34,6 @@ services:
depends_on:
- mongodb

volumes:
mongodb-data:
driver: local
name: mongo-data
mongodb-log:
driver: local
name: mongo-log

networks:
mongodb_network:
driver: bridge
Expand Down
14 changes: 14 additions & 0 deletions db/mongodb-single/mongodb/initdb.d/mongo-init.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
db.getSiblingDB('admin').auth(
process.env.MONGO_INITDB_ROOT_USERNAME,
process.env.MONGO_INITDB_ROOT_PASSWORD
);
db.createUser({
user: 'getaroom',
pwd: 'getaroom',
roles: [
{
role: 'readWrite',
db: 'getaroom'
}
]
});

0 comments on commit 47ed7a7

Please sign in to comment.