1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-18 20:59:44 +02:00

Docker, update readme, update dependencies

This commit is contained in:
Maksim Eltyshev 2019-10-01 04:18:33 +05:00
parent 2398199740
commit adbcb67f03
30 changed files with 1202 additions and 1744 deletions

View file

@ -1,3 +1,3 @@
TZ=UTC
DATABASE_URL=postgresql://localhost/planka
BASE_URL=http://localhost:1337
DATABASE_URL=postgresql://localhost/planka

16
server/.gitignore vendored
View file

@ -46,9 +46,6 @@
config/local.js
.env.local
.env.*.local
################################################
# Dependencies
#
@ -103,10 +100,7 @@ node_modules
# Temporary files generated by Sails/Waterline.
################################################
.tmp/*
!.tmp/public
.tmp/public/uploads/*
!.tmp/public/uploads/.gitkeep
.tmp
################################################
# Miscellaneous
@ -130,3 +124,11 @@ lib-cov
*.log
*.out
*.pid
public/*
!public/uploads
public/uploads/*
!public/uploads/.gitkeep
views/*
!views/.gitkeep

View file

@ -2,15 +2,17 @@
"generators": {
"modules": {}
},
"_generatedWith": {
"sails": "1.1.0",
"sails-generate": "1.16.4"
},
"hooks": {
"blueprints": false,
"grunt": false,
"i18n": false,
"session": false,
"views": false
"session": false
},
"paths": {
"public": "public"
},
"_generatedWith": {
"sails": "1.1.0",
"sails-generate": "1.16.4"
}
}

View file

@ -20,6 +20,6 @@ module.exports.custom = {
baseUrl: process.env.BASE_URL,
uploadsPath: path.join(sails.config.paths.tmp, 'public', 'uploads'),
uploadsPath: path.join(sails.config.paths.public, 'uploads'),
uploadsUrl: `${process.env.BASE_URL}/uploads`,
};

View file

@ -19,6 +19,7 @@
* https://sailsjs.com/docs/concepts/deployment
*/
const url = require('url');
const path = require('path');
const sails = require('sails');
@ -246,7 +247,7 @@ module.exports = {
***************************************************************************/
onlyAllowOrigins: [
process.env.BASE_URL,
new url.URL(process.env.BASE_URL).origin,
],
/***************************************************************************
@ -360,7 +361,7 @@ module.exports = {
custom: {
baseUrl: process.env.BASE_URL,
uploadsPath: path.join(sails.config.paths.tmp, 'public', 'uploads'),
uploadsPath: path.join(sails.config.paths.public, 'uploads'),
uploadsUrl: `${process.env.BASE_URL}/uploads`,
// mailgunDomain: 'mg.example.com',

View file

@ -9,55 +9,60 @@
*/
module.exports.routes = {
'POST /access-tokens': 'access-tokens/create',
'POST /api/access-tokens': 'access-tokens/create',
'GET /users': 'users/index',
'POST /users': 'users/create',
'GET /users/me': 'users/show',
'PATCH /users/:id': 'users/update',
'POST /users/:id/upload-avatar': 'users/upload-avatar',
'DELETE /users/:id': 'users/delete',
'GET /api/users': 'users/index',
'POST /api/users': 'users/create',
'GET /api/users/me': 'users/show',
'PATCH /api/users/:id': 'users/update',
'POST /api/users/:id/upload-avatar': 'users/upload-avatar',
'DELETE /api/users/:id': 'users/delete',
'GET /projects': 'projects/index',
'POST /projects': 'projects/create',
'PATCH /projects/:id': 'projects/update',
'DELETE /projects/:id': 'projects/delete',
'GET /api/projects': 'projects/index',
'POST /api/projects': 'projects/create',
'PATCH /api/projects/:id': 'projects/update',
'DELETE /api/projects/:id': 'projects/delete',
'POST /projects/:projectId/memberships': 'project-memberships/create',
'DELETE /project-memberships/:id': 'project-memberships/delete',
'POST /api/projects/:projectId/memberships': 'project-memberships/create',
'DELETE /api/project-memberships/:id': 'project-memberships/delete',
'POST /projects/:projectId/boards': 'boards/create',
'GET /boards/:id': 'boards/show',
'PATCH /boards/:id': 'boards/update',
'DELETE /boards/:id': 'boards/delete',
'POST /api/projects/:projectId/boards': 'boards/create',
'GET /api/boards/:id': 'boards/show',
'PATCH /api/boards/:id': 'boards/update',
'DELETE /api/boards/:id': 'boards/delete',
'POST /boards/:boardId/lists': 'lists/create',
'PATCH /lists/:id': 'lists/update',
'DELETE /lists/:id': 'lists/delete',
'POST /api/boards/:boardId/lists': 'lists/create',
'PATCH /api/lists/:id': 'lists/update',
'DELETE /api/lists/:id': 'lists/delete',
'POST /boards/:boardId/labels': 'labels/create',
'PATCH /labels/:id': 'labels/update',
'DELETE /labels/:id': 'labels/delete',
'POST /api/boards/:boardId/labels': 'labels/create',
'PATCH /api/labels/:id': 'labels/update',
'DELETE /api/labels/:id': 'labels/delete',
'POST /lists/:listId/cards': 'cards/create',
'GET /cards/:id': 'cards/show',
'PATCH /cards/:id': 'cards/update',
'DELETE /cards/:id': 'cards/delete',
'POST /cards/:cardId/memberships': 'card-memberships/create',
'DELETE /cards/:cardId/memberships': 'card-memberships/delete',
'POST /cards/:cardId/labels': 'card-labels/create',
'DELETE /cards/:cardId/labels/:labelId': 'card-labels/delete',
'POST /api/lists/:listId/cards': 'cards/create',
'GET /api/cards/:id': 'cards/show',
'PATCH /api/cards/:id': 'cards/update',
'DELETE /api/cards/:id': 'cards/delete',
'POST /api/cards/:cardId/memberships': 'card-memberships/create',
'DELETE /api/cards/:cardId/memberships': 'card-memberships/delete',
'POST /api/cards/:cardId/labels': 'card-labels/create',
'DELETE /api/cards/:cardId/labels/:labelId': 'card-labels/delete',
'POST /cards/:cardId/tasks': 'tasks/create',
'PATCH /tasks/:id': 'tasks/update',
'DELETE /tasks/:id': 'tasks/delete',
'POST /api/cards/:cardId/tasks': 'tasks/create',
'PATCH /api/tasks/:id': 'tasks/update',
'DELETE /api/tasks/:id': 'tasks/delete',
'GET /cards/:cardId/actions': 'actions/index',
'GET /api/cards/:cardId/actions': 'actions/index',
'POST /cards/:cardId/comment-actions': 'comment-actions/create',
'PATCH /comment-actions/:id': 'comment-actions/update',
'DELETE /comment-actions/:id': 'comment-actions/delete',
'POST /api/cards/:cardId/comment-actions': 'comment-actions/create',
'PATCH /api/comment-actions/:id': 'comment-actions/update',
'DELETE /api/comment-actions/:id': 'comment-actions/delete',
'GET /notifications': 'notifications/index',
'PATCH /notifications/:ids': 'notifications/update'
'GET /api/notifications': 'notifications/index',
'PATCH /api/notifications/:ids': 'notifications/update',
'GET /*': {
view: 'index',
skipAssets: true,
},
};

View file

@ -24,7 +24,7 @@ module.exports.views = {
* *
***************************************************************************/
// extension: 'ejs',
extension: 'html',
/***************************************************************************
* *
@ -35,5 +35,5 @@ module.exports.views = {
* *
***************************************************************************/
layout: 'layouts/layout',
layout: false,
};

19
server/db/init.js Normal file
View file

@ -0,0 +1,19 @@
const config = require('./knexfile');
const knex = require('knex')(config);
(async function () {
try {
const exists = await knex.schema.hasTable(config.migrations.tableName);
if (!exists) {
await knex.migrate.latest();
await knex.seed.run();
}
} catch (error) {
process.exitCode = 1;
throw error;
} finally {
knex.destroy();
}
})();

View file

@ -1,15 +1,15 @@
const path = require('path');
const _ = require('lodash');
require('dotenv').config({
path: path.resolve(__dirname, '../.env')
});
// Update with your config settings.
module.exports = {
client: 'pg',
connection: process.env.DATABASE_URL,
migrations: {
tableName: 'migration'
}
},
wrapIdentifier: (value, origImpl) => origImpl(_.snakeCase(value))
};

View file

@ -4,13 +4,11 @@ exports.seed = function(knex) {
const date = new Date().toUTCString();
return knex('user').insert({
/* eslint-disable camelcase */
email: 'demo@demo.demo',
password: bcrypt.hashSync('demo', 10),
is_admin: true,
isAdmin: true,
name: 'Demo Demo',
created_at: date,
updated_at: date
/* eslint-enable camelcase */
createdAt: date,
updatedAt: date
});
};

1833
server/package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -4,10 +4,11 @@
"scripts": {
"console": "dotenv sails console",
"custom-tests": "echo \"(No other custom tests yet.)\" && echo",
"db:init": "cd db && node init.js",
"db:migrate": "knex migrate:latest --cwd db",
"db:seed": "knex seed:run --cwd db",
"lint": "node_modules/@sailshq/eslint/bin/eslint.js . --max-warnings=0 --report-unused-disable-directives && echo '✔ Your .js files look good.'",
"start": "NODE_ENV=production node app.js",
"start": "npm run db:init && NODE_ENV=production node app.js",
"start:dev": "nodemon",
"test": "npm run lint && npm run custom-tests && echo 'Done.'"
},
@ -23,13 +24,13 @@
"sails-hook-orm": "^2.1.1",
"sails-hook-sockets": "^2.0.0",
"sails-postgresql": "^1.0.1",
"sharp": "^0.23.0"
"sharp": "^0.23.1"
},
"devDependencies": {
"@sailshq/eslint": "^4.19.3",
"js-yaml": ">=3.13.1",
"mixin-deep": ">=1.3.2",
"nodemon": "^1.19.2",
"nodemon": "^1.19.3",
"set-value": ">=2.0.1"
},
"engines": {

0
server/views/.gitkeep Normal file
View file