It's all very complicated. Approach 1: Simple move unbound to not listen on 0.0.0.0 and only the internal ones. However, docker has no way to bind only to the "public" interface. Approach 2: Move the internal unbound to some other port. This required a PR for haraka - https://github.com/haraka/Haraka/pull/2863 . This works and we use systemd-resolved by default. However, it turns out systemd-resolved with hog the lo and thus docker cannot bind again to port 53. Approach 3: Get rid of systemd-resolved and try to put the dns server list in /etc/resolv.conf. This is surprisingly hard because the DNS listing can come from DHCP or netplan or wherever. We can hardcode some public DNS servers but this seems not a good idea for privacy. Approach 4: So maybe we don't move the unbound away to different port after all. However, all the work for approach 2 is done and it's quite nice that the default resolver is used with the default dns server of the network (probably a caching server + also maybe has some home network firewalled dns). So, the final solution is to bind to the make docker bind to the IP explicity. It's unclear what will happen if the IP changes, maybe it needs a restart.
97 lines
2.5 KiB
JSON
97 lines
2.5 KiB
JSON
{
|
|
"name": "cloudron",
|
|
"description": "Main code for a cloudron",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"author": {
|
|
"name": "Cloudron authors"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://git.cloudron.io/cloudron/box.git"
|
|
},
|
|
"engines": {
|
|
"node": ">=4.0.0 <=4.1.1"
|
|
},
|
|
"dependencies": {
|
|
"@google-cloud/dns": "^1.2.9",
|
|
"@google-cloud/storage": "^2.5.0",
|
|
"@sindresorhus/df": "git+https://github.com/cloudron-io/df.git#type",
|
|
"async": "^2.6.3",
|
|
"aws-sdk": "^2.759.0",
|
|
"basic-auth": "^2.0.1",
|
|
"body-parser": "^1.19.0",
|
|
"cloudron-manifestformat": "^5.8.3",
|
|
"connect": "^3.7.0",
|
|
"connect-lastmile": "^2.0.0",
|
|
"connect-timeout": "^1.9.0",
|
|
"cookie-parser": "^1.4.5",
|
|
"cookie-session": "^1.4.0",
|
|
"cron": "^1.8.2",
|
|
"db-migrate": "^0.11.11",
|
|
"db-migrate-mysql": "^2.1.1",
|
|
"debug": "^4.2.0",
|
|
"dockerode": "^2.5.8",
|
|
"ejs": "^2.6.1",
|
|
"ejs-cli": "^2.2.1",
|
|
"express": "^4.17.1",
|
|
"ipaddr.js": "^2.0.0",
|
|
"js-yaml": "^3.14.0",
|
|
"json": "^9.0.6",
|
|
"jsonwebtoken": "^8.5.1",
|
|
"ldapjs": "^2.2.2",
|
|
"lodash": "^4.17.20",
|
|
"lodash.chunk": "^4.2.0",
|
|
"mime": "^2.4.6",
|
|
"moment": "^2.29.0",
|
|
"moment-timezone": "^0.5.31",
|
|
"morgan": "^1.10.0",
|
|
"multiparty": "^4.2.2",
|
|
"mustache-express": "^1.3.0",
|
|
"mysql": "^2.18.1",
|
|
"nodemailer": "^6.4.11",
|
|
"nodemailer-smtp-transport": "^2.7.4",
|
|
"once": "^1.4.0",
|
|
"pretty-bytes": "^5.4.1",
|
|
"progress-stream": "^2.0.0",
|
|
"proxy-middleware": "^0.15.0",
|
|
"qrcode": "^1.4.4",
|
|
"readdirp": "^3.4.0",
|
|
"request": "^2.88.2",
|
|
"rimraf": "^2.6.3",
|
|
"s3-block-read-stream": "^0.5.0",
|
|
"safetydance": "^1.1.1",
|
|
"semver": "^6.1.1",
|
|
"showdown": "^1.9.1",
|
|
"speakeasy": "^2.0.0",
|
|
"split": "^1.0.1",
|
|
"superagent": "^5.3.1",
|
|
"supererror": "^0.7.2",
|
|
"tar-fs": "github:cloudron-io/tar-fs#ignore_stat_error",
|
|
"tar-stream": "^2.1.4",
|
|
"tldjs": "^2.3.1",
|
|
"underscore": "^1.11.0",
|
|
"uuid": "^3.4.0",
|
|
"validator": "^11.0.0",
|
|
"ws": "^7.3.1",
|
|
"xml2js": "^0.4.23"
|
|
},
|
|
"devDependencies": {
|
|
"expect.js": "*",
|
|
"hock": "^1.4.1",
|
|
"js2xmlparser": "^4.0.1",
|
|
"mocha": "^6.2.3",
|
|
"mock-aws-s3": "git+https://github.com/cloudron-io/mock-aws-s3.git",
|
|
"nock": "^10.0.6",
|
|
"node-sass": "^4.14.1",
|
|
"recursive-readdir": "^2.2.2"
|
|
},
|
|
"scripts": {
|
|
"test": "./runTests",
|
|
"postmerge": "/bin/true",
|
|
"precommit": "/bin/true",
|
|
"prepush": "npm test",
|
|
"dashboard": "node_modules/.bin/gulp"
|
|
}
|
|
}
|