Open mdrokz opened 1 year ago
Hey there, I just got the same issue, my "solution" for that was to change the Dockerfile to use a newer tag like this:
FROM atlassian/nucleus:oidc-support
COPY config.js config.js
EXPOSE 3030
the biggest difference was the docker image tag being "oidc-support" without it, it'll fail for me, it seems to be newest release as well: https://hub.docker.com/layers/atlassian/nucleus/oidc-support/images/sha256-4c038327eeed6edb01217af5894cf275c2e0b2dfddee3616ff4ed9404e24ded6?context=explore
Hey there, I just got the same issue, my "solution" for that was to change the Dockerfile to use a newer tag like this:
FROM atlassian/nucleus:oidc-support COPY config.js config.js EXPOSE 3030
the biggest difference was the docker image tag being "oidc-support" without it, it'll fail for me, it seems to be newest release as well: https://hub.docker.com/layers/atlassian/nucleus/oidc-support/images/sha256-4c038327eeed6edb01217af5894cf275c2e0b2dfddee3616ff4ed9404e24ded6?context=explore
im still getting the same error using this docker image
Hi im trying to run this on my aws server i used the docker file but i get this error
GPG key is invalid or missing, you must provide "config.gpgSigningKey"
.I also tried locally with docker
i also followed the instructions here #37 (comment) to generate the GPG keys
here is my config.js
const path = require('path'); module.exports = { /** * The port to run Nucleus Server on, if the port is in use the server will not start */ port: 3030, /** * The fully qualified domain + path that Nucleus is being hosted at */ baseURL: 'http://localhost:8888', /** * The data store to use when persisting plugins and versions. Current possible values * are "sequelize", ensure you also supply valid connection details for your * chosen strategy below. * * PR's welcome to add another data store. */ dbStrategy: 'sequelize', /** * Sequelize connection information, please note all options are required * * database: The name of the database to connect to * dialect: The type of SQL database this is, check sequelize docs for more info * username: Username to use when connecting * password; Password to use when connecting * host: Hostname of database * port: Port to use when connecting * storage: Path to sqlite file, only used for sqlite dialect */ sequelize: { dialect: 'sqlite', storage: path.resolve(__dirname, 'db.sqlite'), }, /** * The file store to use when persisting update files and metadata. Current possible * values are "s3" and "local" ensure you also supply valid connection details if * required for your chosen strategy below. * * PR's welcome to add another file store. */ fileStrategy: 'local', /** * Local file configuration * * root: Path on disk to the root of the static file store * staticUrl: The HTTP url to use to access the static file store remotely */ local: { root: path.resolve(__dirname, '.files'), staticUrl: 'http://localhost:9999' }, /** * There is actually no authentication config for s3, all config must be done through the standard AWS * environment variables or through EC2 IAM roles. * * See http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html * * Bucket / Region / CloudFront config goes here though */ s3: { // init: { // endpoint: '' // The alternate endpoint to reach the S3 instance at, // s3ForcePathStyle: true // Always use path style URLs // } bucketName: '', // The name for your S3 Bucket cloudfront: { // If you don't have CloudFront set up and just want to use the S3 bucket set this to "null distributionId: '', // The CloudFront distribution ID, used for invalidating files publicUrl: '', // Fully qualified URL for the root of the CloudFront proxy for the S3 bucket } }, /** * The authentication strategy to use when logging users in. Current possible values are "local", * "openid" and "github". Make you also supply the required authentication details */ authStrategy: 'local', /** * Local authentication details * * The `adminIdentifiers` array should be a list of usernames * * DISCLAIMER: This strategy should ONLY be used for local development and NEVER * used in production. Unicorns cry every time this setting is used in production. * Don't make the unicorns cry. * * displayName: The user friendly name of this user * username: A unique identifier to use when this user signs in, please note uniqueness is * not enforced * password: Well, uhhh, their password * photo: A URL for their profile, entirely optional, just makes things look nicer ;) */ localAuth: [{ displayName: 'Charlie', username: 'charlie', password: 'charlie', photo: 'https://pbs.twimg.com/profile_images/1219364727/charlie-support_400x400.png' }], /** * See the documentation for your authentication strategy for what this array does */ adminIdentifiers: ['admin@yourdomain.com', 'charlie'], /** * Session options, in development just leave this as default. * * IN PRODUCTION PLEASE USE REDIS! * * type: Can be either "redis" or null * * redis: * host: The host URL for the redis instance * port: The port for the redis instance */ sessionConfig: { type: null, secret: 'ThisIsNotSecret', redis: { host: '', port: '' } }, organization: 'My Company Here', /** * GPG key to use when signing APT and YUM releases * * Requires to be unlocked (no password) and have both the private and * public key. */ gpgSigningKey: `-----BEGIN PGP PUBLIC KEY BLOCK----- mQGNBGT5tDsBDAC15FUWUIeEEtQoftvg7/vWtDDy1rVFikHlLgcekL/S2Fy2p+BC GnWu76F3AhYWoqZ/1ufHvz9RKtNO1WecDFqh19WZ4k6n390c36wgmj86GLQ6e1Nu MZ6v09iLx8m5gdDyNW92IKc4Jf3k3AvA5ZFLoolFkGd+q7R3zUMDmGyFahcU2PxY G6bgmY2of0gOXxdgjXRclU8YvdW9cekxUMMLD3/tfYsEOnsERwwIOt/cOyrmdr5p /xNqD63p+dFcHXsHXSHjwYfbQuI1nvtbQyzincGB6WMq4pjUSO83CU2a91BrV26B TCV5B7/OEAcVvSRypyVWTvFgLUuafhwjkknUYSchPTQnCjKyV9OhIV5DEONjW2Er BZmgZaPiZs4Ew5XaSKlvk9EIxhDmqnE9+XayncnsIRepMeZF3s3CB1NfGLD4SQRF H4e4KkHn8ZjgfODG21Ys3P50/4oiDpsKE6/J7MQpuJw8VgoCSWaQOaT3rHaXknsl azw+Wvsx6rXy99cAEQEAAbQqTW9oYW1tYWQgTXVuc2hpIDxtb2hhbW1hZG11bnNo aUBnbWFpbC5jb20+iQHRBBMBCAA7FiEE+IcmMHCowUZowRDzmrLboFIyFI0FAmT5 tDsCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQmrLboFIyFI0CAQv6 AmlmgJVpBdQm8u4JS/E6Pivypoxoj2eh5syS47W9+CVY78JcXHhgDPXOrrGXHpeR MMR1uNkpXfyyBxMFPjDqMLGXrSHKkhSO2NdGbqTaUpyvynfifkz0jQhTM3jcq2RL AZRpfv8aJU0y2YSCXOUfUSW3kSplrU2bKSsO0QeYJwbJOeM/J74sXTdxQ9ABA5Cd 35AwmxKuNLUIwvdmDG5GXEtv+F3D0+H1cKC2u8ZACQuft7E4yRULWrTNkvFJiqKf eq+Ey0E/W5hj0RwJTdCL+qsbrDtQPzk48ZC6jxZ2ILLH6yBY6aPAxYM6vZzsMUap /mT+gmTgydotnj/9MZ9tZL0bNkkTO3d3JreAfX64KpEHdcAwCHlGjM1thp0W//l4 h7g23jTZG0si8dPTuws0ray3RU4TiVSxAGAJeX0zLkL8IdGv8wjxzp9/1euLj86j 2/2bXsO41ZC4en8/VnMtAvbQjvkNRSGIwq/TNArHxXTC1hZj4XJtTZYR3ZQXhbvt uQGNBGT5tDsBDADaO+DUWaXhPG/yBkOcPlhfvfHvGwL5U6hQB4QMCXrUs6O+pdJE grGDoa116rZHb7t0DZDV5iHaKAqsMyaGVtSLyMBHRIF0ABT7GdPeMOrzcJeFFfHu MftPY3TDMM3j/muLPUD1o9Wq2z1kI2NHnhvTDUpGLjVrCo1TTUSPI0FZeibuQtQM icS8L5HAC9CC0HNcyF3CafWcv9dMqRVifE0rJ8X0vxpiOW9Dz5ML8xTNzYrCsKCT yKbe6V/oRE7Z/lfDumse1NVdDlw5JgHTCsGB//UWjSLYKvNY9derVwI758OgweKC YUS4iEkghFL0U8ynuIfzQtwZL58ZQzdTw8INFm3rFTFfSjNyx/XSIMEMPKm+gE0j mO4u9zzlfBv1kk6J+vD/4uBaj8pAoTFAJl/Oxc/Vb5/whN+CG7smnAg1BYoZ+jVO sX28IBRYAlQj8UvIaWfgbVzoeFdnvLgCE13nTkLm3PexmKu7zb7IpyTPKtUABtuJ HkhPUdII5WsqGu8AEQEAAYkBtgQYAQgAIBYhBPiHJjBwqMFGaMEQ85qy26BSMhSN BQJk+bQ7AhsMAAoJEJqy26BSMhSNe7MMAKP9QrAuelkejTb0rPtCkBRggqDibiZd VaeJCva3bntdV/upRcSdVuWD8aab+Kv7E+5OKD7ISFdRJCLkuAdpiBLoDo9FmUNZ QxLlDMIneihIxNFu0wzhLDwQV/3NTVbfV79MXFo0fLiWa/QVSH72pG2EOakbd8fN nI0sIQPBypVuFNJ69NJym0wt9swwNsBdn37APVUoOyhLUeZa51ia8fE1op2iYWAN jlgXqNMlbYj9zDSSLQ8KOHYwe2Xp/StbYdbgKqBCmbcSJX8v7ubF8dYRf7DHj5yu fjtuZFHkOFF46Ywi1ad+SH6XhZyVpF6PEBLzbakfem1q6rc6WNx4Y1Ajc0nXSvMg aIDX8onoLX2XXmA9eB+g8th6/WQDHnN+dOIrJJpAd0nBx+5wjxS2OaIcApUPNjKj yrqBvD4WB1ts2XONPf6zrNgeXYA80u6IBPbd2H0kEIDGE/Guu843c9bBgSGrlrbo ad6c09P+GFkowNAzEpUDTrzcxIrqrS8xeA== =HWYT -----END PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PRIVATE KEY BLOCK----- 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 =0JWC -----END PGP PRIVATE KEY BLOCK----- `, /** * The default percentage rollout for new releases. The first release for * any channel will always be 100% but all future releases will have a * default rollout value of this setting */ defaultRollout: 0 };
theris error in regex condition src/files/utils/gpg.ts
change
const keyMatch = keyImport.match(/ key ([A-Za-z0-9]+):/);
to
const keyMatch = keyImport.match(/ ([A-Z0-9]+):/);
Could this problem possibly be related to the encryption algorithm used? I ran into it with a ECC key generated by gpg 2.3.7, but a RSA key generated by the same gpg version on the same machine appears to work.
@pfn-shi Same thing happened with me - I went through the same steps with gpg's defaults (ECC) and kept getting an error that the key was invalid. After following the exact same steps but using RSA instead, nucleus started up properly.
Hi im trying to run this on my aws server i used the docker file but i get this error
GPG key is invalid or missing, you must provide "config.gpgSigningKey"
.I also tried locally with docker
i also followed the instructions here https://github.com/atlassian/nucleus/issues/37#issuecomment-391399362 to generate the GPG keys
here is my config.js