AmruthPillai / Reactive-Resume

A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!
https://rxresu.me
MIT License
22.86k stars 2.41k forks source link

[Bug] Fail using pre-created storage or creating storage #1561

Closed martadinata666 closed 10 months ago

martadinata666 commented 10 months ago

Is there an existing issue for this?

Product Variant

Self-Hosted

Current Behavior

As a recommendation of env

# Storage
STORAGE_URL=http://localhost:9000
STORAGE_ENDPOINT=localhost
STORAGE_PORT=9000
STORAGE_REGION=us-east-1
STORAGE_BUCKET=default
STORAGE_ACCESS_KEY=minioadmin
STORAGE_SECRET_KEY=minioadmin

Thus modified

# Storage
STORAGE_URL=http://host-ip:9000
STORAGE_ENDPOINT=host-ip
STORAGE_PORT=9000
STORAGE_REGION=us-east-1
STORAGE_BUCKET=reactiveresume
STORAGE_ACCESS_KEY=notadminaccount
STORAGE_SECRET_KEY=notadminaccountsecret

Then I tried using "minioadmin" also failed to create a bucket

/home/docker/reactiveresume/dist/apps/server/main.js:550
            throw new common_1.InternalServerErrorException("There was an error while creating the storage bucket.");
                  ^

InternalServerErrorException: There was an error while creating the storage bucket.
    at StorageService.onModuleInit (/home/docker/reactiveresume/dist/apps/server/main.js:550:19)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Promise.all (index 0)
    at async callModuleInitHook (/home/docker/reactiveresume/node_modules/.pnpm/@nestjs+core@10.2.10_@nestjs+common@10.2.10_@nestjs+platform-express@10.2.10_reflect-metadata@0.1.13_rxjs@7.8.1/node_modules/@nestjs/core/hooks/on-module-init.hook.js:43:5)
    at async NestApplication.callInitHook (/home/docker/reactiveresume/node_modules/.pnpm/@nestjs+core@10.2.10_@nestjs+common@10.2.10_@nestjs+platform-express@10.2.10_reflect-metadata@0.1.13_rxjs@7.8.1/node_modules/@nestjs/core/nest-application-context.js:223:13)
    at async NestApplication.init (/home/docker/reactiveresume/node_modules/.pnpm/@nestjs+core@10.2.10_@nestjs+common@10.2.10_@nestjs+platform-express@10.2.10_reflect-metadata@0.1.13_rxjs@7.8.1/node_modules/@nestjs/core/nest-application.js:100:9)
    at async NestApplication.listen (/home/docker/reactiveresume/node_modules/.pnpm/@nestjs+core@10.2.10_@nestjs+common@10.2.10_@nestjs+platform-express@10.2.10_reflect-metadata@0.1.13_rxjs@7.8.1/node_modules/@nestjs/core/nest-application.js:169:33)
    at async bootstrap (/home/docker/reactiveresume/dist/apps/server/main.js:14311:5) {
  response: {
    message: 'There was an error while creating the storage bucket.',
    error: 'Internal Server Error',
    statusCode: 500
  },
  status: 500,
  options: {}
}

Node.js v18.17.1
 ELIFECYCLE  Command failed with exit code 1.

Expected Behavior

Reactive resume should connect to the bucket if pre created or correctly created the bucket.

Steps To Reproduce

No response

What browsers are you seeing the problem on?

No response

What template are you using?

None

Anything else?

No response

AmruthPillai commented 10 months ago

Are there no other logs related to this? There are fallbacks in place to make use of the existing bucket, if it exists. This error could also be caused be it's trying to set a bucket policy but unable to do so.

I've managed to do a similar process when trying to reproduce the issue, creating a bucket in S3 and connecting to it. It worked as expected.

martadinata666 commented 10 months ago

I tested run again with nodejs debug env.

NODE_ENV=development DEBUG=*  pnpm start

I feel like nothing really change about the log

docker@442b37679884:~/reactiveresume$ NODE_ENV=development DEBUG=*  pnpm start

> @reactive-resume/source@4.0.0 prestart /home/docker/reactiveresume
> pnpm prisma:migrate

> @reactive-resume/source@4.0.0 prisma:migrate /home/docker/reactiveresume
> pnpm exec prisma migrate deploy

  prisma:engines  binaries to download libquery-engine, schema-engine +0ms
  prisma:get-platform  Found distro info:
{
  "targetDistro": "debian",
  "familyDistro": "debian",
  "originalDistro": "debian"
} +0ms
  prisma:get-platform  Trying platform-specific paths for "debian" (and "ubuntu") +0ms
  prisma:get-platform  Found libssl.so file using platform-specific paths: libssl.so.3 +2ms
  prisma:get-platform  The parsed libssl version is: 3.0.x +0ms
  prisma:get-platform  Found distro info:
{
  "targetDistro": "debian",
  "familyDistro": "debian",
  "originalDistro": "debian"
} +2ms
  prisma:get-platform  Trying platform-specific paths for "debian" (and "ubuntu") +0ms
  prisma:get-platform  Found libssl.so file using platform-specific paths: libssl.so.3 +0ms
  prisma:get-platform  The parsed libssl version is: 3.0.x +0ms
  prisma:loadEnv  project root found at /home/docker/reactiveresume/package.json +0ms
  prisma:tryLoadEnv  Environment variables not found at null +0ms
  prisma:tryLoadEnv  Environment variables not found at undefined +0ms
  prisma:tryLoadEnv  No Environment variables loaded +0ms
  prisma:getConfig  Using getConfig Wasm +0ms
  prisma:getConfig  config data retrieved without errors in getConfig Wasm +7ms
  prisma:get-platform  Found distro info:
{
  "targetDistro": "debian",
  "familyDistro": "debian",
  "originalDistro": "debian"
} +0ms
  prisma:get-platform  Trying platform-specific paths for "debian" (and "ubuntu") +1ms
  prisma:get-platform  Found libssl.so file using platform-specific paths: libssl.so.3 +0ms
  prisma:get-platform  The parsed libssl version is: 3.0.x +1ms
  prisma:loadEnv  project root found at /home/docker/reactiveresume/package.json +16ms
  prisma:tryLoadEnv  Environment variables not found at null +14ms
  prisma:tryLoadEnv  Environment variables not found at undefined +0ms
  prisma:tryLoadEnv  No Environment variables loaded +0ms
Prisma schema loaded from tools/prisma/schema.prisma
  prisma:getConfig  Using getConfig Wasm +9ms
  prisma:getConfig  config data retrieved without errors in getConfig Wasm +5ms
Datasource "db": PostgreSQL database "postgres", schema "public" at "db:5432"
  prisma:getConfig  Using getConfig Wasm +2ms
  prisma:getConfig  config data retrieved without errors in getConfig Wasm +4ms
  prisma:schemaEngine:rpc  starting Schema engine with binary: /home/docker/reactiveresume/node_modules/.pnpm/@prisma+engines@5.6.0/node_modules/@prisma/engines/schema-engine-debian-openssl-3.0.x +0ms
  prisma:schemaEngine:rpc  SENDING RPC CALL {"id":1,"jsonrpc":"2.0","method":"listMigrationDirectories","params":{"migrationsDirectoryPath":"/home/docker/reactiveresume/tools/prisma/migrations"}} +8ms
  prisma:schemaEngine:stderr  {"timestamp":"2023-11-23T06:19:52.954899477Z","level":"INFO","fields":{"message":"Starting schema engine RPC server","git_hash":"e95e739751f42d8ca026f6b910f5a2dc5adeaeee"},"target":"schema_engine"} +0ms
  prisma:migrate:deploy  {
  listMigrationDirectoriesResult: { migrations: [ '20231121234455_initialize_tables' ] }
} +0ms

1 migration found in prisma/migrations

  prisma:schemaEngine:rpc  SENDING RPC CALL {"id":2,"jsonrpc":"2.0","method":"applyMigrations","params":{"migrationsDirectoryPath":"/home/docker/reactiveresume/tools/prisma/migrations"}} +19ms
  prisma:schemaEngine:stderr  {"timestamp":"2023-11-23T06:19:53.025840824Z","level":"INFO","fields":{"message":"Analysis run in 55ms","analysis_duration_ms":55},"target":"schema_core::commands::apply_migrations","span":{"name":"ApplyMigrations"},"spans":[{"name":"ApplyMigrations"}]} +71ms

No pending migrations to apply.
  prisma:getConfig  Using getConfig Wasm +153ms
  prisma:getConfig  config data retrieved without errors in getConfig Wasm +2ms

> @reactive-resume/source@4.0.0 start /home/docker/reactiveresume
> node dist/apps/server/main

  prisma:tryLoadEnv  Environment variables not found at null +0ms
  prisma:tryLoadEnv  Environment variables not found at undefined +1ms
  prisma:tryLoadEnv  No Environment variables loaded +0ms
  express:application set "x-powered-by" to true +0ms
  express:application set "etag" to 'weak' +1ms
  express:application set "etag fn" to [Function: generateETag] +1ms
  express:application set "env" to 'development' +0ms
  express:application set "query parser" to 'extended' +1ms
  express:application set "query parser fn" to [Function: parseExtendedQueryString] +0ms
  express:application set "subdomain offset" to 2 +0ms
  express:application set "trust proxy" to false +0ms
  express:application set "trust proxy fn" to [Function: trustNone] +0ms
  express:application booting in development mode +0ms
  express:application set "view" to [Function: View] +0ms
  express:application set "views" to '/home/docker/reactiveresume/views' +1ms
  express:application set "jsonp callback name" to 'callback' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [NestFactory] Starting Nest application...
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] AppModule dependencies initialized +30ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] ConfigModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] MailerModule dependencies initialized +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] RavenModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] CacheModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] RedisHealthModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] PassportModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] AuthModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] HttpModule dependencies initialized +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] ConfigHostModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] JwtModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] DatabaseModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] TerminusModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] ServeStaticModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] ServeStaticModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] ConfigModule dependencies initialized +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM    WARN [MailModule] Since `SMTP_URL` is not set, emails would be logged to the console instead. This is not recommended for production environments.
  prisma:client  checkPlatformCaching:postinstall false +0ms
  prisma:client  checkPlatformCaching:ciName GitLab CI +0ms
  prisma:tryLoadEnv  Environment variables not found at null +2s
  prisma:tryLoadEnv  Environment variables not found at undefined +0ms
  prisma:tryLoadEnv  No Environment variables loaded +0ms
  prisma:client  dirname /home/docker/reactiveresume/node_modules/.pnpm/@prisma+client@5.6.0_prisma@5.6.0/node_modules/.prisma/client +0ms
  prisma:client  relativePath ../../../../../../tools/prisma +0ms
  prisma:client  cwd /home/docker/reactiveresume/tools/prisma +0ms
  prisma:client  clientVersion 5.6.0 +0ms
  prisma:client:libraryEngine  internalSetup +0ms
  ioredis:redis status[redis:6379]: wait -> connecting +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] PrismaModule dependencies initialized +12ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] MailerCoreModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] MinioModule dependencies initialized +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] MailModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] RedisModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] UtilsModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] TranslationModule dependencies initialized +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] ContributorsModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] PrinterModule dependencies initialized +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] StorageModule dependencies initialized +3ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] HealthModule dependencies initialized +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] UserModule dependencies initialized +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] ResumeModule dependencies initialized +4ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [InstanceLoader] AuthModule dependencies initialized +0ms
  express:router use '/' query +62ms
  express:router:layer new '/' +0ms
  express:router use '/' expressInit +1ms
  express:router:layer new '/' +0ms
  express:router use '/' cookieParser +0ms
  express:router:layer new '/' +0ms
  express:router use '/' corsMiddleware +0ms
  express:router:layer new '/' +0ms
  express:router:route new '/docs/swagger-ui-init.js' +33ms
  express:router:layer new '/docs/swagger-ui-init.js' +0ms
  express:router:route get '/docs/swagger-ui-init.js' +1ms
  express:router:layer new '/' +0ms
  express:router:route new '/docs/docs/swagger-ui-init.js' +0ms
  express:router:layer new '/docs/docs/swagger-ui-init.js' +1ms
  express:router:route get '/docs/docs/swagger-ui-init.js' +0ms
  express:router:layer new '/' +0ms
  express:router:route new '/docs' +1ms
  express:router:layer new '/docs' +0ms
  express:router:route get '/docs' +0ms
  express:router:layer new '/' +0ms
  express:router:route new '/docs/' +1ms
  express:router:layer new '/docs/' +0ms
  express:router:route get '/docs/' +1ms
  express:router:layer new '/' +0ms
  express:router:route new '/docs-json' +0ms
  express:router:layer new '/docs-json' +1ms
  express:router:route get '/docs-json' +0ms
  express:router:layer new '/' +0ms
  express:router:route new '/docs-yaml' +1ms
  express:router:layer new '/docs-yaml' +0ms
  express:router:route get '/docs-yaml' +0ms
  express:router:layer new '/' +0ms
  express:router use '/docs' serveStatic +2ms
  express:router:layer new '/docs' +0ms
  express:router use '/docs/docs' serveStatic +0ms
  express:router:layer new '/docs/docs' +0ms
  express:router use '/' jsonParser +8ms
  express:router:layer new '/' +0ms
  express:router use '/' urlencodedParser +1ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RoutesResolver] HealthController {/api/health}: +58ms
  express:router:route new '/api/health' +5ms
  express:router:layer new '/api/health' +0ms
  express:router:route get '/api/health' +0ms
  express:router:layer new '/' +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/health, GET} route +4ms
  express:router:route new '/api/health/environment' +0ms
  express:router:layer new '/api/health/environment' +1ms
  express:router:route get '/api/health/environment' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/health/environment, GET} route +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RoutesResolver] StorageController {/api/storage}: +1ms
  express:router:route new '/api/storage/image' +2ms
  express:router:layer new '/api/storage/image' +0ms
  express:router:route put '/api/storage/image' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/storage/image, PUT} route +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RoutesResolver] AuthController {/api/auth}: +0ms
  express:router:route new '/api/auth/register' +0ms
  express:router:layer new '/api/auth/register' +1ms
  express:router:route post '/api/auth/register' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/register, POST} route +1ms
  express:router:route new '/api/auth/login' +0ms
  express:router:layer new '/api/auth/login' +0ms
  express:router:route post '/api/auth/login' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/login, POST} route +0ms
  express:router:route new '/api/auth/providers' +1ms
  express:router:layer new '/api/auth/providers' +0ms
  express:router:route get '/api/auth/providers' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/providers, GET} route +1ms
  express:router:route new '/api/auth/github' +0ms
  express:router:layer new '/api/auth/github' +0ms
  express:router:route get '/api/auth/github' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/github, GET} route +1ms
  express:router:route new '/api/auth/github/callback' +1ms
  express:router:layer new '/api/auth/github/callback' +0ms
  express:router:route get '/api/auth/github/callback' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/github/callback, GET} route +0ms
  express:router:route new '/api/auth/google' +0ms
  express:router:layer new '/api/auth/google' +0ms
  express:router:route get '/api/auth/google' +1ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/google, GET} route +1ms
  express:router:route new '/api/auth/google/callback' +0ms
  express:router:layer new '/api/auth/google/callback' +0ms
  express:router:route get '/api/auth/google/callback' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/google/callback, GET} route +0ms
  express:router:route new '/api/auth/refresh' +0ms
  express:router:layer new '/api/auth/refresh' +0ms
  express:router:route post '/api/auth/refresh' +0ms
  express:router:layer new '/' +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/refresh, POST} route +1ms
  express:router:route new '/api/auth/password' +0ms
  express:router:layer new '/api/auth/password' +0ms
  express:router:route patch '/api/auth/password' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/password, PATCH} route +0ms
  express:router:route new '/api/auth/logout' +0ms
  express:router:layer new '/api/auth/logout' +0ms
  express:router:route post '/api/auth/logout' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/logout, POST} route +0ms
  express:router:route new '/api/auth/2fa/setup' +1ms
  express:router:layer new '/api/auth/2fa/setup' +0ms
  express:router:route post '/api/auth/2fa/setup' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/2fa/setup, POST} route +1ms
  express:router:route new '/api/auth/2fa/enable' +0ms
  express:router:layer new '/api/auth/2fa/enable' +0ms
  express:router:route post '/api/auth/2fa/enable' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/2fa/enable, POST} route +0ms
  express:router:route new '/api/auth/2fa/disable' +0ms
  express:router:layer new '/api/auth/2fa/disable' +0ms
  express:router:route post '/api/auth/2fa/disable' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/2fa/disable, POST} route +1ms
  express:router:route new '/api/auth/2fa/verify' +1ms
  express:router:layer new '/api/auth/2fa/verify' +0ms
  express:router:route post '/api/auth/2fa/verify' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/2fa/verify, POST} route +0ms
  express:router:route new '/api/auth/2fa/backup' +0ms
  express:router:layer new '/api/auth/2fa/backup' +1ms
  express:router:route post '/api/auth/2fa/backup' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/2fa/backup, POST} route +1ms
  express:router:route new '/api/auth/forgot-password' +0ms
  express:router:layer new '/api/auth/forgot-password' +0ms
  express:router:route post '/api/auth/forgot-password' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/forgot-password, POST} route +1ms
  express:router:route new '/api/auth/reset-password' +1ms
  express:router:layer new '/api/auth/reset-password' +0ms
  express:router:route post '/api/auth/reset-password' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/reset-password, POST} route +0ms
  express:router:route new '/api/auth/verify-email' +0ms
  express:router:layer new '/api/auth/verify-email' +1ms
  express:router:route post '/api/auth/verify-email' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/verify-email, POST} route +1ms
  express:router:route new '/api/auth/verify-email/resend' +0ms
  express:router:layer new '/api/auth/verify-email/resend' +0ms
  express:router:route post '/api/auth/verify-email/resend' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/auth/verify-email/resend, POST} route +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RoutesResolver] UserController {/api/user}: +0ms
  express:router:route new '/api/user/me' +1ms
  express:router:layer new '/api/user/me' +0ms
  express:router:route get '/api/user/me' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/user/me, GET} route +0ms
  express:router:route new '/api/user/me' +0ms
  express:router:layer new '/api/user/me' +0ms
  express:router:route patch '/api/user/me' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/user/me, PATCH} route +0ms
  express:router:route new '/api/user/me' +1ms
  express:router:layer new '/api/user/me' +0ms
  express:router:route delete '/api/user/me' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/user/me, DELETE} route +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RoutesResolver] ResumeController {/api/resume}: +0ms
  express:router:route new '/api/resume/schema' +0ms
  express:router:layer new '/api/resume/schema' +0ms
  express:router:route get '/api/resume/schema' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/resume/schema, GET} route +1ms
  express:router:route new '/api/resume' +1ms
  express:router:layer new '/api/resume' +0ms
  express:router:route post '/api/resume' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/resume, POST} route +0ms
  express:router:route new '/api/resume/import' +0ms
  express:router:layer new '/api/resume/import' +0ms
  express:router:route post '/api/resume/import' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/resume/import, POST} route +0ms
  express:router:route new '/api/resume' +0ms
  express:router:layer new '/api/resume' +0ms
  express:router:route get '/api/resume' +1ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/resume, GET} route +1ms
  express:router:route new '/api/resume/:id' +1ms
  express:router:layer new '/api/resume/:id' +0ms
  express:router:route get '/api/resume/:id' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/resume/:id, GET} route +1ms
  express:router:route new '/api/resume/:id/statistics' +0ms
  express:router:layer new '/api/resume/:id/statistics' +0ms
  express:router:route get '/api/resume/:id/statistics' +0ms
  express:router:layer new '/' +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/resume/:id/statistics, GET} route +1ms
  express:router:route new '/api/resume/public/:username/:slug' +0ms
  express:router:layer new '/api/resume/public/:username/:slug' +0ms
  express:router:route get '/api/resume/public/:username/:slug' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/resume/public/:username/:slug, GET} route +0ms
  express:router:route new '/api/resume/:id' +0ms
  express:router:layer new '/api/resume/:id' +0ms
  express:router:route patch '/api/resume/:id' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/resume/:id, PATCH} route +0ms
  express:router:route new '/api/resume/:id/lock' +0ms
  express:router:layer new '/api/resume/:id/lock' +0ms
  express:router:route patch '/api/resume/:id/lock' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/resume/:id/lock, PATCH} route +1ms
  express:router:route new '/api/resume/:id' +1ms
  express:router:layer new '/api/resume/:id' +0ms
  express:router:route delete '/api/resume/:id' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/resume/:id, DELETE} route +0ms
  express:router:route new '/api/resume/print/:id' +0ms
  express:router:layer new '/api/resume/print/:id' +0ms
  express:router:route get '/api/resume/print/:id' +1ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/resume/print/:id, GET} route +1ms
  express:router:route new '/api/resume/print/:id/preview' +0ms
  express:router:layer new '/api/resume/print/:id/preview' +0ms
  express:router:route get '/api/resume/print/:id/preview' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/resume/print/:id/preview, GET} route +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RoutesResolver] TranslationController {/api/translation}: +0ms
  express:router:route new '/api/translation/languages' +1ms
  express:router:layer new '/api/translation/languages' +0ms
  express:router:route get '/api/translation/languages' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/translation/languages, GET} route +1ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RoutesResolver] ContributorsController {/api/contributors}: +0ms
  express:router:route new '/api/contributors/github' +0ms
  express:router:layer new '/api/contributors/github' +0ms
  express:router:route get '/api/contributors/github' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/contributors/github, GET} route +0ms
  express:router:route new '/api/contributors/crowdin' +1ms
  express:router:layer new '/api/contributors/crowdin' +0ms
  express:router:route get '/api/contributors/crowdin' +0ms
  express:router:layer new '/' +0ms
[Nest] 97  - 11/23/2023, 1:19:55 PM     LOG [RouterExplorer] Mapped {/api/contributors/crowdin, GET} route +1ms
/home/docker/reactiveresume/dist/apps/server/main.js:550
            throw new common_1.InternalServerErrorException("There was an error while creating the storage bucket.");
                  ^

InternalServerErrorException: There was an error while creating the storage bucket.
    at StorageService.onModuleInit (/home/docker/reactiveresume/dist/apps/server/main.js:550:19)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Promise.all (index 0)
    at async callModuleInitHook (/home/docker/reactiveresume/node_modules/.pnpm/@nestjs+core@10.2.10_@nestjs+common@10.2.10_@nestjs+platform-express@10.2.10_reflect-metadata@0.1.13_rxjs@7.8.1/node_modules/@nestjs/core/hooks/on-module-init.hook.js:43:5)
    at async NestApplication.callInitHook (/home/docker/reactiveresume/node_modules/.pnpm/@nestjs+core@10.2.10_@nestjs+common@10.2.10_@nestjs+platform-express@10.2.10_reflect-metadata@0.1.13_rxjs@7.8.1/node_modules/@nestjs/core/nest-application-context.js:223:13)
    at async NestApplication.init (/home/docker/reactiveresume/node_modules/.pnpm/@nestjs+core@10.2.10_@nestjs+common@10.2.10_@nestjs+platform-express@10.2.10_reflect-metadata@0.1.13_rxjs@7.8.1/node_modules/@nestjs/core/nest-application.js:100:9)
    at async NestApplication.listen (/home/docker/reactiveresume/node_modules/.pnpm/@nestjs+core@10.2.10_@nestjs+common@10.2.10_@nestjs+platform-express@10.2.10_reflect-metadata@0.1.13_rxjs@7.8.1/node_modules/@nestjs/core/nest-application.js:169:33)
    at async bootstrap (/home/docker/reactiveresume/dist/apps/server/main.js:14311:5) {
  response: {
    message: 'There was an error while creating the storage bucket.',
    error: 'Internal Server Error',
    statusCode: 500
  },
  status: 500,
  options: {}
}

Node.js v18.17.1
 ELIFECYCLE  Command failed with exit code 1.

If it was about permission then minioadmin should do it. I checked to minio logs, Im not really sure, but reactive-resume seems not to be trying to connect or reading STORAGE env correctly. Another one I noticed is when set to "localhost:9000", also error 500

AmruthPillai commented 10 months ago

@martadinata666 Could you pull the latest image and check the logs again, I've rearranged the catch blocks to throw appropriate errors now.

martadinata666 commented 10 months ago

Ah thanks, now we can see the appropriate error. So is it trying to connect HTTPS on HTTP?

/home/docker/reactiveresume/dist/apps/server/main.js:560
            throw new common_1.InternalServerErrorException(error);
                  ^

InternalServerErrorException: write EPROTO C077C3290E7F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:355:

    at StorageService.onModuleInit (/home/docker/reactiveresume/dist/apps/server/main.js:560:19)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Promise.all (index 0)
    at async callModuleInitHook (/home/docker/reactiveresume/node_modules/.pnpm/@nestjs+core@10.2.10_@nestjs+common@10.2.10_@nestjs+platform-express@10.2.10_reflect-metadata@0.1.13_rxjs@7.8.1/node_modules/@nestjs/core/hooks/on-module-init.hook.js:43:5)
    at async NestApplication.callInitHook (/home/docker/reactiveresume/node_modules/.pnpm/@nestjs+core@10.2.10_@nestjs+common@10.2.10_@nestjs+platform-express@10.2.10_reflect-metadata@0.1.13_rxjs@7.8.1/node_modules/@nestjs/core/nest-application-context.js:223:13)
    at async NestApplication.init (/home/docker/reactiveresume/node_modules/.pnpm/@nestjs+core@10.2.10_@nestjs+common@10.2.10_@nestjs+platform-express@10.2.10_reflect-metadata@0.1.13_rxjs@7.8.1/node_modules/@nestjs/core/nest-application.js:100:9)
    at async NestApplication.listen (/home/docker/reactiveresume/node_modules/.pnpm/@nestjs+core@10.2.10_@nestjs+common@10.2.10_@nestjs+platform-express@10.2.10_reflect-metadata@0.1.13_rxjs@7.8.1/node_modules/@nestjs/core/nest-application.js:169:33)
    at async bootstrap (/home/docker/reactiveresume/dist/apps/server/main.js:14321:5) {
  response: Error: write EPROTO C077C3290E7F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:355:

      at WriteWrap.onWriteComplete [as oncomplete] (node:internal/stream_base_commons:94:16) {
    errno: -71,
    code: 'EPROTO',
    syscall: 'write'
  },
  status: 500,
  options: {}
}

Node.js v18.17.1
 ELIFECYCLE  Command failed with exit code 1.
AmruthPillai commented 10 months ago

@martadinata666 I see, perfect. This helps a lot, thank you. I think in one of the recent changes I made to push to production, the default is always set to forceSSL: true. I'm thinking about how to make this configurable. Probably adding another env var is the straight-forward way, but I don't want to clutter the app with too many env vars to get the user confused either.

guidot commented 3 months ago

I ran into the same error with the latest image, no matter to what I set STORAGE_USE_SSL.

Postgres is complaining too. Every few seconds I get: could not receive data from client: Connection reset by peer

All container live on the same host. I'm using rootless podman. Hope that's not an issue.

I'll be happy to help with more info.