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:
parent
2398199740
commit
adbcb67f03
30 changed files with 1202 additions and 1744 deletions
|
@ -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
16
server/.gitignore
vendored
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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`,
|
||||
};
|
||||
|
|
5
server/config/env/production.js
vendored
5
server/config/env/production.js
vendored
|
@ -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',
|
||||
|
|
|
@ -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,
|
||||
},
|
||||
};
|
||||
|
|
|
@ -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
19
server/db/init.js
Normal 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();
|
||||
}
|
||||
})();
|
|
@ -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))
|
||||
};
|
||||
|
|
|
@ -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
1833
server/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -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
0
server/views/.gitkeep
Normal file
Loading…
Add table
Add a link
Reference in a new issue