Skip to content

Commit

Permalink
Merge pull request #93 from openstad/fix/remove-image-database
Browse files Browse the repository at this point in the history
Database verwijdert vanuit image server
  • Loading branch information
BartWtje authored Dec 20, 2023
2 parents 2201508 + 18f7d4f commit c5e7768
Show file tree
Hide file tree
Showing 13 changed files with 4 additions and 237 deletions.
5 changes: 2 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,11 @@ DB_HOST=openstad-mysql
DB_USERNAME=USERNAME
DB_PASSWORD=PASSWORD

# Set the names of the databases. If not set and no DB_BASE_NAME then the defaults will be openstad(-api, -auth, -image)
# Set the names of the databases. If not set and no DB_BASE_NAME then the defaults will be openstad(-api, -auth)
AUTH_DB_NAME=openstad-auth
API_DB_NAME=openstad-api
IMAGE_DB_NAME=openstad-image

# Alternatively use DB_BASE_NAME, it will be appenden by (-api, -auth, -image)
# Alternatively use DB_BASE_NAME, it will be appenden by (-api, -auth)
# DB_BASE_NAME=openstad

# Possibly not applicable anymore
Expand Down
66 changes: 0 additions & 66 deletions apps/image-server/db.js

This file was deleted.

30 changes: 0 additions & 30 deletions apps/image-server/model/client.js

This file was deleted.

3 changes: 0 additions & 3 deletions apps/image-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,7 @@
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"init-database": "node ./scripts/init-database.js",
"migrate-database": "node ./scripts/migrate-database.js",
"start": "node ./server.js",
"predev": "./scripts/predev.sh",
"dev": "nodemon ./server.js"
},
"dependencies": {
Expand Down
40 changes: 1 addition & 39 deletions apps/image-server/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ const express = require('express');
const app = express();
const imgSteam = require('image-steam');
const multer = require('multer');
const AWS = require('aws-sdk')
const multerS3 = require('multer-s3')
const crypto = require('crypto')

const secret = process.env.IMAGE_VERIFICATION_TOKEN
Expand Down Expand Up @@ -51,42 +49,7 @@ const imageSteamConfig = {
}
};

if (process.env.S3_ENDPOINT) {
try {
const endpoint = new AWS.Endpoint(process.env.S3_ENDPOINT);
const s3 = new AWS.S3({
accessKeyId: process.env.S3_KEY,
secretAccessKey: process.env.S3_SECRET,
endpoint: endpoint
});

multerConfig.storage = multerS3({
s3: s3,
bucket: process.env.S3_BUCKET,
acl: 'public-read',
metadata: function (req, file, cb) {
cb(null, {
fieldName: file.fieldname
});
},
key: function (req, file, cb) {
cb(null, Date.now().toString())
}
});
} catch(error) {
console.error(error);
}
imageSteamConfig.storage.defaults = {
"driverPath": "image-steam-s3",
"endpoint": process.env.S3_ENDPOINT,
"bucket": process.env.S3_BUCKET,
"accessKey": process.env.S3_KEY,
"secretKey": process.env.S3_SECRET
};
} else {
multerConfig.dest = process.env.IMAGES_DIR || 'images/';
console.log(process.env.IMAGES_DIR)
}
multerConfig.dest = process.env.IMAGES_DIR || 'images/';

const upload = multer(multerConfig);

Expand Down Expand Up @@ -196,5 +159,4 @@ app.use(function (err, req, res, next) {

app.listen(argv.port, function () {
console.log('Application listen on port %d...', argv.port);
//console.log('Image server listening on port %d...', argv.portImageSteam);
});
1 change: 0 additions & 1 deletion doc/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ DB_USERNAME=
DB_PASSWORD=
API_DB_NAME=
AUTH_DB_NAME=
IMAGE_DB_NAME=
```

### If everything else fails
Expand Down
7 changes: 0 additions & 7 deletions doc/setup-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,13 +94,6 @@ IMAGE_APP_URL = 'http://' + IMAGE_DOMAIN;
IMAGE_PORT_API = BASE_PORT + 50;
IMAGE_PORT_IMAGE_SERVER = IMAGE_PORT_API + 1;
IMAGE_CLIENT_TOKEN = generateRandomToken({ length: 255 });
IMAGE_DB_HOST = process.env.DB_HOST
IMAGE_DB_USERNAME = process.env.DB_USERNAME
IMAGE_DB_PASSWORD = process.env.DB_PASSWORD
IMAGE_DB_NAME = ( process.env.DB_BASE_NAME ? process.env.DB_BASE_NAME + '-image-server' : 'image-server' )
IMAGE_IMAGES_DIR = ''
IMAGE_THROTTLE = true
IMAGE_THROTTLE_CC_PROCESSORS = 4
Expand Down
5 changes: 0 additions & 5 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ services:
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- AUTH_DB_NAME=${AUTH_DB_NAME}
- API_DB_NAME=${API_DB_NAME}
- IMAGE_DB_NAME=${IMAGE_DB_NAME}
command:
- mysqld
- --default-authentication-plugin=mysql_native_password
Expand Down Expand Up @@ -147,10 +146,6 @@ services:
- APP_URL=${IMAGE_APP_URL}
- PORT_API=${IMAGE_PORT_API}
- PORT_IMAGE_SERVER=${IMAGE_PORT_IMAGE_SERVER}
- DB_HOST=${IMAGE_DB_HOST}
- DB_USER=${IMAGE_DB_USER}
- DB_PASSWORD=${IMAGE_DB_PASSWORD}
- DB_NAME=${IMAGE_DB_NAME}
- IMAGES_DIR=${IMAGE_IMAGES_DIR}
- THROTTLE=${IMAGE_THROTTLE}
- THROTTLE_CC_PROCESSORS=${IMAGE_THROTTLE_CC_PROCESSORS}
Expand Down
6 changes: 0 additions & 6 deletions scripts/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ let IMAGE_PORT_API = process.env.IMAGE_PORT_API || BASE_PORT + 50;
let IMAGE_DOMAIN = process.env.IMAGE_DOMAIN || ( process.env.BASE_DOMAIN == 'localhost' ? 'localhost:' + IMAGE_PORT_API : 'image.' + process.env.BASE_DOMAIN );
let IMAGE_APP_URL = process.env.IMAGE_APP_URL || ( process.env.FORCE_HTTP ? 'http://' : 'https://' ) + IMAGE_DOMAIN;
let IMAGE_PORT_IMAGE_SERVER = process.env.IMAGE_PORT_IMAGE_SERVER || IMAGE_PORT_API + 1;
let IMAGE_CLIENT_TOKEN = process.env.IMAGE_CLIENT_TOKEN || generateRandomToken({ length: 255 });
let IMAGE_VERIFICATION_TOKEN = process.env.IMAGE_VERIFICATION_TOKEN || generateRandomToken({ length: 32 })

let ADMIN_PORT = process.env.ADMIN_PORT || BASE_PORT + 70;
Expand Down Expand Up @@ -100,11 +99,6 @@ process.env.IMAGE_APP_URL = IMAGE_APP_URL || '';
process.env.IMAGE_PORT_API = IMAGE_PORT_API || '';
process.env.IMAGE_PORT_IMAGE_SERVER = IMAGE_PORT_IMAGE_SERVER || '';

process.env.IMAGE_DB_HOST = process.env.IMAGE_DB_HOST || process.env.DB_HOST || '';
process.env.IMAGE_DB_USERNAME = process.env.IMAGE_DB_USERNAME || process.env.DB_USERNAME || '';
process.env.IMAGE_DB_PASSWORD = process.env.IMAGE_DB_PASSWORD || process.env.DB_PASSWORD || '';
process.env.IMAGE_DB_NAME = process.env.IMAGE_DB_NAME || ( process.env.DB_BASE_NAME ? process.env.DB_BASE_NAME + '-image' : 'openstad-image' );

process.env.IMAGE_IMAGES_DIR = process.env.IMAGE_IMAGES_DIR || '';
process.env.IMAGE_THROTTLE = process.env.IMAGE_THROTTLE || true;
process.env.IMAGE_THROTTLE_CC_PROCESSORS = process.env.IMAGE_THROTTLE_CC_PROCESSORS || 4;
Expand Down
4 changes: 0 additions & 4 deletions scripts/create-docker-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ MYSQL_USER=${process.env.DB_USERNAME}
MYSQL_PASSWORD=${process.env.DB_PASSWORD}
AUTH_DB_NAME=${process.env.AUTH_DB_NAME}
API_DB_NAME=${process.env.API_DB_NAME}
IMAGE_DB_NAME=${process.env.IMAGE_DB_NAME}
API_URL=${process.env.API_URL}
API_HOSTNAME=${process.env.API_DOMAIN}
Expand Down Expand Up @@ -91,9 +90,6 @@ AUTH_COOKIE_SECURE_OFF=${process.env.AUTH_COOKIE_SECURE_OFF}
IMAGE_APP_URL=${process.env.IMAGE_APP_URL}
IMAGE_PORT_API=${process.env.IMAGE_PORT_API}
IMAGE_PORT_IMAGE_SERVER=${process.env.IMAGE_PORT_IMAGE_SERVER}
IMAGE_DB_HOST=${process.env.IMAGE_DB_HOST || 'openstad-mysql'}
IMAGE_DB_USER=${process.env.IMAGE_DB_USERNAME}
IMAGE_DB_PASSWORD=${process.env.IMAGE_DB_PASSWORD}
IMAGE_IMAGES_DIR=${process.env.IMAGE_IMAGES_DIR || '/opt/image-server/images'}
IMAGE_THROTTLE=${process.env.IMAGE_THROTTLE}
IMAGE_THROTTLE_CC_PROCESSORS=${process.env.IMAGE_THROTTLE_CC_PROCESSORS}
Expand Down
5 changes: 0 additions & 5 deletions scripts/init-databases.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,6 @@ async function init() {
console.log('Init AUTH database');
await execute('npm', ['run', 'init-database'], { cwd: './apps/auth-server' });

// init image db
console.log('------------------------------');
console.log('Init IMAGE database');
await execute('npm', ['run', 'init-database'], { cwd: './apps/image-server' });

} catch(err) {
console.log(err);
process.exit();
Expand Down
1 change: 0 additions & 1 deletion scripts/init-sql.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

mysql -u root -p$MYSQL_ROOT_PASSWORD --execute \
"CREATE DATABASE IF NOT EXISTS \`$AUTH_DB_NAME\`;
CREATE DATABASE IF NOT EXISTS \`$IMAGE_DB_NAME\`;
CREATE DATABASE IF NOT EXISTS \`$API_DB_NAME\`;
GRANT ALL ON *.* TO '$MYSQL_USER'@'%';
FLUSH PRIVILEGES;"
68 changes: 1 addition & 67 deletions scripts/setup-image.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,59 +7,15 @@ module.exports = async function setupImageServer(actions) {

console.log('==============================');
console.log('Setup image server');

let connection;

let doCreateDB;

try {

connection = await imgDb.createConnection({
host : process.env.IMAGE_DB_HOST,
user : process.env.IMAGE_DB_USERNAME,
password : process.env.IMAGE_DB_PASSWORD,
dialect : process.env.IMAGE_DB_DIALECT,
});

await connection.query(`USE \`${process.env.IMAGE_DB_NAME}\`;`);

} catch(err) {
doCreateDB = true;
}

try {

// create database?
if (doCreateDB) {

console.log('------------------------------');
console.log('Create database');

await connection.query(`CREATE DATABASE \`${process.env.IMAGE_DB_NAME}\`;`)
await connection.query(`USE \`${process.env.IMAGE_DB_NAME}\`;`);

} else {
console.log('------------------------------');
console.log('Database exists');
}

// check database
let doCreateDBTables = false;
let rows = await connection.query('SHOW TABLES;')
if (!(rows && rows.length)) {
doCreateDBTables = true;
}

// create local config
let imgConfig = `
APP_URL=${process.env.IMAGE_APP_URL}
PORT_API=${process.env.IMAGE_PORT_API}
PORT_IMAGE_SERVER=${process.env.IMAGE_PORT_IMAGE_SERVER}
DB_HOST=${process.env.IMAGE_DB_HOST}
DB_USER=${process.env.IMAGE_DB_USERNAME}
DB_PASSWORD=${process.env.IMAGE_DB_PASSWORD}
DB_NAME=${process.env.IMAGE_DB_NAME}
IMAGES_DIR=${process.env.IMAGE_IMAGES_DIR}
THROTTLE=${process.env.IMAGE_THROTTLE}
THROTTLE_CC_PROCESSORS=${process.env.IMAGE_THROTTLE_CC_PROCESSORS}
Expand All @@ -80,28 +36,6 @@ THROTTLE_CC_REQUESTS=${process.env.IMAGE_THROTTLE_CC_REQUESTS}
await execute('npm', ['i'], { cwd: './apps/image-server' });
}

// init db
if (actions['init database']) {
if (1 || doCreateDBTables) { // TODO: hij update voor nu altijd
console.log('------------------------------');
console.log('Init IMAGE database');
await execute('npm', ['run', 'init-database'], { cwd: './apps/image-server' });
} else {
console.log('------------------------------');
console.log('IMAGE database already initialized');
}

// create client
// rows = await connection.query('SELECT * FROM clients;')
// if (rows && rows.length) {
// console.log('Now update existing client');
// await connection.query('UPDATE clients SET clientName = ?, token = ?, displayName = ? WHERE id = ?', [process.env.IMAGE_CLIENT_NAME, process.env.IMAGE_CLIENT_TOKEN, process.env.IMAGE_CLIENT_DISPLAY_NAME, 1 ]);
// } else {
// console.log('Create a client');
// await connection.query('INSERT INTO clients VALUES( ?, ?, ?, ?, NOW(), NOW() );', [1, process.env.IMAGE_CLIENT_NAME, process.env.IMAGE_CLIENT_TOKEN, process.env.IMAGE_CLIENT_DISPLAY_NAME])
// }
}

} catch(err) {
console.log('------------------------------');
console.log('Image server initialisatie error');
Expand Down

0 comments on commit c5e7768

Please sign in to comment.