404 error with RPC find_match in xoxo-phaserjs

Hi.

I’m a noob for nakama framework, so I’m trying to follow getting-start page(Nakama: Getting Started | Heroic Labs Documentation).

I installed Nakama Server with Docker.

Next, I cloned xoxo-phaserjs from github(GitHub - heroiclabs/xoxo-phaserjs).

After npm run dev command, I clicked “BEGIN” button to match a game.

And then, 404 error occured.

Anyone please teach me what step did I lost?

How can I add “/v2/rpc/find_match” endpoint to Nakama server?

Thanks for reading!!

  1. Versions: Nakama {3.5}, {Docker}
  2. Server Framework Runtime language (If relevant) {TS/JS}
nakama-js.esm.js:582          POST http://localhost:7350/v2/rpc/find_match? 404 (Not Found)

:tv: Media:

Hi @hawaiiden welcome to the forum.

Can you please tell me how you are running Nakama? Is it via docker compose up as detailed here Nakama: Docker Compose | Heroic Labs Documentation?

Can you please share the output logs from Nakama server so that I can verify the server is up and running correctly?

Cheers,
Tom

Hi, @tom
Thank you so much for your response.

First, no, it is via docker compose up as detailed [Heroic Labs Documentation | TypeScript Runtime]
But I also tried both db docker composed server here Nakama: Docker Compose | Heroic Labs Documentation. Same 404 error.

Second, actually, there’s none response at all that 404 error moment when I checked it, but here’s output logs.

  • /nakama/nakama migrate up --database.address postgres:localdb@postgres:5432/nakama
  • exec /nakama/nakama --config /nakama/data/local.yml --database.address postgres:localdb@postgres:5432/nakama
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.068Z”,“caller”:“migrate/migrate.go:147”,“msg”:“Database connection”,“dsn”:“postgres://postgres:xxxxx@postgres:5432/nakama?sslmode=prefer”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.095Z”,“caller”:“migrate/migrate.go:195”,“msg”:“Database information”,“version”:“PostgreSQL 12.2 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.2.0) 9.2.0, 64-bit”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.102Z”,“caller”:“migrate/migrate.go:218”,“msg”:“Successfully applied migration”,“count”:0}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.132Z”,“caller”:“server/config.go:86”,“msg”:“Successfully loaded config file”,“path”:“/nakama/data/local.yml”}
    {“level”:“warn”,“ts”:“2022-06-30T07:15:18.132Z”,“caller”:“server/config.go:303”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“console.username”}
    {“level”:“warn”,“ts”:“2022-06-30T07:15:18.133Z”,“caller”:“server/config.go:307”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“console.password”}
    {“level”:“warn”,“ts”:“2022-06-30T07:15:18.133Z”,“caller”:“server/config.go:311”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“console.signing_key”}
    {“level”:“warn”,“ts”:“2022-06-30T07:15:18.133Z”,“caller”:“server/config.go:315”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“socket.server_key”}
    {“level”:“warn”,“ts”:“2022-06-30T07:15:18.133Z”,“caller”:“server/config.go:319”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“session.encryption_key”}
    {“level”:“warn”,“ts”:“2022-06-30T07:15:18.133Z”,“caller”:“server/config.go:323”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“session.refresh_encryption_key”}
    {“level”:“warn”,“ts”:“2022-06-30T07:15:18.133Z”,“caller”:“server/config.go:327”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“runtime.http_key”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.133Z”,“caller”:“main.go:103”,“msg”:“Nakama starting”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.133Z”,“caller”:“main.go:104”,“msg”:“Node”,“name”:“nakama”,“version”:“3.12.0+f5e935d6”,“runtime”:“go1.18.2”,“cpu”:4,“proc”:4}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.133Z”,“caller”:“main.go:105”,“msg”:“Data directory”,“path”:“/nakama/data”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.133Z”,“caller”:“main.go:124”,“msg”:“Database connections”,“dsns”:[“postgres:xxxxx@postgres:5432/nakama”]}
    {“level”:“debug”,“ts”:“2022-06-30T07:15:18.136Z”,“caller”:“server/db.go:61”,“msg”:“Complete database connection URL”,“raw_url”:“postgres://postgres:localdb@postgres:5432/nakama?sslmode=prefer”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.149Z”,“caller”:“main.go:130”,“msg”:“Database information”,“version”:“PostgreSQL 12.2 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.2.0) 9.2.0, 64-bit”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.155Z”,“caller”:“server/leaderboard_rank_cache.go:117”,“msg”:“Initializing leaderboard rank cache”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.156Z”,“caller”:“server/leaderboard_rank_cache.go:240”,“msg”:“Leaderboard rank cache initialization completed successfully”,“cached”:,“skipped”:}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.157Z”,“caller”:“server/runtime.go:571”,“msg”:“Initialising runtime”,“path”:“/nakama/data/modules”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.157Z”,“caller”:“server/runtime.go:578”,“msg”:“Initialising runtime event queue processor”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.158Z”,“caller”:“server/runtime.go:580”,“msg”:“Runtime event queue processor started”,“size”:65536,“workers”:8}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.158Z”,“caller”:“server/runtime_go.go:2396”,“msg”:“Initialising Go runtime provider”,“path”:“/nakama/data/modules”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.158Z”,“caller”:“server/runtime_go.go:2420”,“msg”:“Go runtime modules loaded”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.158Z”,“caller”:“server/runtime_lua.go:110”,“msg”:“Initialising Lua runtime provider”,“path”:“/nakama/data/modules”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.159Z”,“caller”:“server/runtime_lua.go:1116”,“msg”:“Lua runtime modules loaded”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.159Z”,“caller”:“server/runtime_lua.go:1119”,“msg”:“Allocating minimum Lua runtime pool”,“count”:16}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.159Z”,“caller”:“server/runtime_lua.go:1127”,“msg”:“Allocated minimum Lua runtime pool”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.159Z”,“caller”:“server/runtime_javascript.go:578”,“msg”:“Initialising JavaScript runtime provider”,“path”:“/nakama/data/modules”,“entrypoint”:“build/index.js”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.165Z”,“caller”:“server/runtime_javascript_logger.go:74”,“msg”:“TypeScript module loaded.”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.165Z”,“caller”:“server/runtime_javascript.go:1572”,“msg”:“JavaScript runtime modules loaded”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.165Z”,“caller”:“server/runtime_javascript.go:1575”,“msg”:“Allocating minimum JavaScript runtime pool”,“count”:16}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.214Z”,“caller”:“server/runtime_javascript.go:1583”,“msg”:“Allocated minimum JavaScript runtime pool”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.214Z”,“caller”:“server/runtime.go:613”,“msg”:“Found runtime modules”,“count”:1,“modules”:[“index.js”]}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.214Z”,“caller”:“server/runtime.go:630”,“msg”:“Registered JavaScript runtime RPC function invocation”,“id”:“healthcheck”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.214Z”,“caller”:“server/leaderboard_scheduler.go:92”,“msg”:“Leaderboard scheduler start”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.214Z”,“caller”:“server/leaderboard_scheduler.go:279”,“msg”:“Leaderboard scheduler update”,“end_active”:“-1ns”,“end_active_count”:0,“expiry”:“-1ns”,“expiry_count”:0}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.214Z”,“caller”:“server/api.go:131”,“msg”:“Starting API server for gRPC requests”,“port”:7349}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.215Z”,“caller”:“server/api.go:265”,“msg”:“Starting API server gateway for HTTP requests”,“port”:7350}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.220Z”,“caller”:“server/console.go:202”,“msg”:“Starting Console server for gRPC requests”,“port”:7348}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.221Z”,“caller”:“server/console.go:296”,“msg”:“Starting Console server gateway for HTTP requests”,“port”:7351}
    {“level”:“info”,“ts”:“2022-06-30T07:15:18.392Z”,“caller”:“main.go:184”,“msg”:“Startup done”}
    {“level”:“info”,“ts”:“2022-06-30T07:15:29.481Z”,“caller”:“server/session_ws.go:80”,“msg”:“New WebSocket session connected”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“6bfc61f7-f844-11ec-b1d5-006100a0eb06”,“format”:0}
    {“level”:“info”,“ts”:“2022-06-30T07:16:44.853Z”,“caller”:“server/session_ws.go:438”,“msg”:“Cleaning up closed client connection”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“6bfc61f7-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:16:44.853Z”,“caller”:“server/session_ws.go:446”,“msg”:“Cleaned up closed connection matchmaker”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“6bfc61f7-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:16:44.854Z”,“caller”:“server/session_ws.go:450”,“msg”:“Cleaned up closed connection tracker”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“6bfc61f7-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:16:44.854Z”,“caller”:“server/session_ws.go:454”,“msg”:“Cleaned up closed connection status registry”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“6bfc61f7-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:16:44.854Z”,“caller”:“server/session_ws.go:458”,“msg”:“Cleaned up closed connection session registry”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“6bfc61f7-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“debug”,“ts”:“2022-06-30T07:16:44.854Z”,“caller”:“server/session_ws.go:510”,“msg”:“Could not send close message”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“6bfc61f7-f844-11ec-b1d5-006100a0eb06”,“error”:“websocket: close sent”}
    {“level”:“info”,“ts”:“2022-06-30T07:16:44.855Z”,“caller”:“server/session_ws.go:517”,“msg”:“Closed client connection”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“6bfc61f7-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:16:45.418Z”,“caller”:“server/session_ws.go:80”,“msg”:“New WebSocket session connected”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“993f7fa5-f844-11ec-b1d5-006100a0eb06”,“format”:0}
    {“level”:“info”,“ts”:“2022-06-30T07:16:47.790Z”,“caller”:“server/session_ws.go:438”,“msg”:“Cleaning up closed client connection”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“993f7fa5-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:16:47.790Z”,“caller”:“server/session_ws.go:446”,“msg”:“Cleaned up closed connection matchmaker”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“993f7fa5-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:16:47.790Z”,“caller”:“server/session_ws.go:450”,“msg”:“Cleaned up closed connection tracker”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“993f7fa5-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:16:47.790Z”,“caller”:“server/session_ws.go:454”,“msg”:“Cleaned up closed connection status registry”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“993f7fa5-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:16:47.790Z”,“caller”:“server/session_ws.go:458”,“msg”:“Cleaned up closed connection session registry”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“993f7fa5-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“debug”,“ts”:“2022-06-30T07:16:47.790Z”,“caller”:“server/session_ws.go:510”,“msg”:“Could not send close message”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“993f7fa5-f844-11ec-b1d5-006100a0eb06”,“error”:“websocket: close sent”}
    {“level”:“info”,“ts”:“2022-06-30T07:16:47.790Z”,“caller”:“server/session_ws.go:517”,“msg”:“Closed client connection”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“993f7fa5-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:16:48.304Z”,“caller”:“server/session_ws.go:80”,“msg”:“New WebSocket session connected”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“9af7f333-f844-11ec-b1d5-006100a0eb06”,“format”:0}
    {“level”:“info”,“ts”:“2022-06-30T07:37:48.051Z”,“caller”:“server/session_ws.go:438”,“msg”:“Cleaning up closed client connection”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“9af7f333-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:37:48.052Z”,“caller”:“server/session_ws.go:446”,“msg”:“Cleaned up closed connection matchmaker”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“9af7f333-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:37:48.052Z”,“caller”:“server/session_ws.go:450”,“msg”:“Cleaned up closed connection tracker”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“9af7f333-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:37:48.052Z”,“caller”:“server/session_ws.go:454”,“msg”:“Cleaned up closed connection status registry”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“9af7f333-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:37:48.052Z”,“caller”:“server/session_ws.go:458”,“msg”:“Cleaned up closed connection session registry”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“9af7f333-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“debug”,“ts”:“2022-06-30T07:37:48.052Z”,“caller”:“server/session_ws.go:510”,“msg”:“Could not send close message”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“9af7f333-f844-11ec-b1d5-006100a0eb06”,“error”:“websocket: close sent”}
    {“level”:“info”,“ts”:“2022-06-30T07:37:48.052Z”,“caller”:“server/session_ws.go:517”,“msg”:“Closed client connection”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“9af7f333-f844-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:37:48.776Z”,“caller”:“server/session_ws.go:80”,“msg”:“New WebSocket session connected”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“8a44bb2a-f847-11ec-b1d5-006100a0eb06”,“format”:0}
    {“level”:“info”,“ts”:“2022-06-30T07:43:12.716Z”,“caller”:“server/session_ws.go:438”,“msg”:“Cleaning up closed client connection”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“8a44bb2a-f847-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:43:12.716Z”,“caller”:“server/session_ws.go:446”,“msg”:“Cleaned up closed connection matchmaker”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“8a44bb2a-f847-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:43:12.717Z”,“caller”:“server/session_ws.go:450”,“msg”:“Cleaned up closed connection tracker”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“8a44bb2a-f847-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:43:12.717Z”,“caller”:“server/session_ws.go:454”,“msg”:“Cleaned up closed connection status registry”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“8a44bb2a-f847-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:43:12.717Z”,“caller”:“server/session_ws.go:458”,“msg”:“Cleaned up closed connection session registry”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“8a44bb2a-f847-11ec-b1d5-006100a0eb06”}
    {“level”:“debug”,“ts”:“2022-06-30T07:43:12.717Z”,“caller”:“server/session_ws.go:510”,“msg”:“Could not send close message”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“8a44bb2a-f847-11ec-b1d5-006100a0eb06”,“error”:“websocket: close sent”}
    {“level”:“info”,“ts”:“2022-06-30T07:43:12.718Z”,“caller”:“server/session_ws.go:517”,“msg”:“Closed client connection”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“8a44bb2a-f847-11ec-b1d5-006100a0eb06”}
    {“level”:“info”,“ts”:“2022-06-30T07:44:30.417Z”,“caller”:“main.go:200”,“msg”:“Shutdown started”}
    {“level”:“info”,“ts”:“2022-06-30T07:44:30.417Z”,“caller”:“main.go:207”,“msg”:“All authoritative matches stopped”}
  • /nakama/nakama migrate up --database.address postgres:localdb@postgres:5432/nakama
    {“level”:“info”,“ts”:“2022-06-30T16:12:06.972Z”,“caller”:“migrate/migrate.go:147”,“msg”:“Database connection”,“dsn”:“postgres://postgres:xxxxx@postgres:5432/nakama?sslmode=prefer”}
    {“level”:“fatal”,“ts”:“2022-06-30T16:12:07.334Z”,“caller”:“migrate/migrate.go:161”,“msg”:“Failed to check if db exists”,“db”:“nakama”,“error”:“failed to connect to host=postgres user=postgres database=nakama: hostname resolving error (lookup postgres on 127.0.0.11:53: no such host)”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:08.056Z”,“caller”:“migrate/migrate.go:147”,“msg”:“Database connection”,“dsn”:“postgres://postgres:xxxxx@postgres:5432/nakama?sslmode=prefer”}
  • /nakama/nakama migrate up --database.address postgres:localdb@postgres:5432/nakama
  • /nakama/nakama migrate up --database.address postgres:localdb@postgres:5432/nakama
    {“level”:“fatal”,“ts”:“2022-06-30T16:12:08.067Z”,“caller”:“migrate/migrate.go:161”,“msg”:“Failed to check if db exists”,“db”:“nakama”,“error”:“failed to connect to host=postgres user=postgres database=nakama: hostname resolving error (lookup postgres on 127.0.0.11:53: no such host)”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:08.773Z”,“caller”:“migrate/migrate.go:147”,“msg”:“Database connection”,“dsn”:“postgres://postgres:xxxxx@postgres:5432/nakama?sslmode=prefer”}
    {“level”:“fatal”,“ts”:“2022-06-30T16:12:08.782Z”,“caller”:“migrate/migrate.go:161”,“msg”:“Failed to check if db exists”,“db”:“nakama”,“error”:“failed to connect to host=postgres user=postgres database=nakama: hostname resolving error (lookup postgres on 127.0.0.11:53: no such host)”}
  • /nakama/nakama migrate up --database.address postgres:localdb@postgres:5432/nakama
    {“level”:“info”,“ts”:“2022-06-30T16:12:09.746Z”,“caller”:“migrate/migrate.go:147”,“msg”:“Database connection”,“dsn”:“postgres://postgres:xxxxx@postgres:5432/nakama?sslmode=prefer”}
    {“level”:“fatal”,“ts”:“2022-06-30T16:12:09.756Z”,“caller”:“migrate/migrate.go:161”,“msg”:“Failed to check if db exists”,“db”:“nakama”,“error”:“failed to connect to host=postgres user=postgres database=nakama: hostname resolving error (lookup postgres on 127.0.0.11:53: no such host)”}
  • /nakama/nakama migrate up --database.address postgres:localdb@postgres:5432/nakama
  • /nakama/nakama migrate up --database.address postgres:localdb@postgres:5432/nakama
    {“level”:“info”,“ts”:“2022-06-30T16:12:11.107Z”,“caller”:“migrate/migrate.go:147”,“msg”:“Database connection”,“dsn”:“postgres://postgres:xxxxx@postgres:5432/nakama?sslmode=prefer”}
    {“level”:“fatal”,“ts”:“2022-06-30T16:12:11.116Z”,“caller”:“migrate/migrate.go:161”,“msg”:“Failed to check if db exists”,“db”:“nakama”,“error”:“failed to connect to host=postgres user=postgres database=nakama: hostname resolving error (lookup postgres on 127.0.0.11:53: no such host)”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:13.217Z”,“caller”:“migrate/migrate.go:147”,“msg”:“Database connection”,“dsn”:“postgres://postgres:xxxxx@postgres:5432/nakama?sslmode=prefer”}
    {“level”:“fatal”,“ts”:“2022-06-30T16:12:13.229Z”,“caller”:“migrate/migrate.go:161”,“msg”:“Failed to check if db exists”,“db”:“nakama”,“error”:“failed to connect to host=postgres user=postgres database=nakama: hostname resolving error (lookup postgres on 127.0.0.11:53: no such host)”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:16.958Z”,“caller”:“migrate/migrate.go:147”,“msg”:“Database connection”,“dsn”:“postgres://postgres:xxxxx@postgres:5432/nakama?sslmode=prefer”}
  • /nakama/nakama migrate up --database.address postgres:localdb@postgres:5432/nakama
    {“level”:“fatal”,“ts”:“2022-06-30T16:12:16.967Z”,“caller”:“migrate/migrate.go:161”,“msg”:“Failed to check if db exists”,“db”:“nakama”,“error”:“failed to connect to host=postgres user=postgres database=nakama: hostname resolving error (lookup postgres on 127.0.0.11:53: no such host)”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:23.861Z”,“caller”:“migrate/migrate.go:147”,“msg”:“Database connection”,“dsn”:“postgres://postgres:xxxxx@postgres:5432/nakama?sslmode=prefer”}
    {“level”:“fatal”,“ts”:“2022-06-30T16:12:23.875Z”,“caller”:“migrate/migrate.go:161”,“msg”:“Failed to check if db exists”,“db”:“nakama”,“error”:“failed to connect to host=postgres user=postgres database=nakama: hostname resolving error (lookup postgres on 127.0.0.11:53: no such host)”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:37.196Z”,“caller”:“migrate/migrate.go:147”,“msg”:“Database connection”,“dsn”:“postgres://postgres:xxxxx@postgres:5432/nakama?sslmode=prefer”}
    {“level”:“fatal”,“ts”:“2022-06-30T16:12:37.211Z”,“caller”:“migrate/migrate.go:161”,“msg”:“Failed to check if db exists”,“db”:“nakama”,“error”:“failed to connect to host=postgres user=postgres database=nakama: hostname resolving error (lookup postgres on 127.0.0.11:53: no such host)”}
  • /nakama/nakama migrate up --database.address postgres:localdb@postgres:5432/nakama
  • /nakama/nakama migrate up --database.address postgres:localdb@postgres:5432/nakama
  • /nakama/nakama migrate up --database.address postgres:localdb@postgres:5432/nakama
  • exec /nakama/nakama --config /nakama/data/local.yml --database.address postgres:localdb@postgres:5432/nakama
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.124Z”,“caller”:“migrate/migrate.go:147”,“msg”:“Database connection”,“dsn”:“postgres://postgres:xxxxx@postgres:5432/nakama?sslmode=prefer”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.188Z”,“caller”:“migrate/migrate.go:195”,“msg”:“Database information”,“version”:“PostgreSQL 12.2 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.2.0) 9.2.0, 64-bit”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.194Z”,“caller”:“migrate/migrate.go:218”,“msg”:“Successfully applied migration”,“count”:0}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.235Z”,“caller”:“server/config.go:86”,“msg”:“Successfully loaded config file”,“path”:“/nakama/data/local.yml”}
    {“level”:“warn”,“ts”:“2022-06-30T16:12:49.238Z”,“caller”:“server/config.go:303”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“console.username”}
    {“level”:“warn”,“ts”:“2022-06-30T16:12:49.238Z”,“caller”:“server/config.go:307”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“console.password”}
    {“level”:“warn”,“ts”:“2022-06-30T16:12:49.238Z”,“caller”:“server/config.go:311”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“console.signing_key”}
    {“level”:“warn”,“ts”:“2022-06-30T16:12:49.238Z”,“caller”:“server/config.go:315”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“socket.server_key”}
    {“level”:“warn”,“ts”:“2022-06-30T16:12:49.238Z”,“caller”:“server/config.go:319”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“session.encryption_key”}
    {“level”:“warn”,“ts”:“2022-06-30T16:12:49.238Z”,“caller”:“server/config.go:323”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“session.refresh_encryption_key”}
    {“level”:“warn”,“ts”:“2022-06-30T16:12:49.238Z”,“caller”:“server/config.go:327”,“msg”:“WARNING: insecure default parameter value, change this for production!”,“param”:“runtime.http_key”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.238Z”,“caller”:“main.go:103”,“msg”:“Nakama starting”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.238Z”,“caller”:“main.go:104”,“msg”:“Node”,“name”:“nakama”,“version”:“3.12.0+f5e935d6”,“runtime”:“go1.18.2”,“cpu”:4,“proc”:4}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.238Z”,“caller”:“main.go:105”,“msg”:“Data directory”,“path”:“/nakama/data”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.238Z”,“caller”:“main.go:124”,“msg”:“Database connections”,“dsns”:[“postgres:xxxxx@postgres:5432/nakama”]}
    {“level”:“debug”,“ts”:“2022-06-30T16:12:49.240Z”,“caller”:“server/db.go:61”,“msg”:“Complete database connection URL”,“raw_url”:“postgres://postgres:localdb@postgres:5432/nakama?sslmode=prefer”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.248Z”,“caller”:“main.go:130”,“msg”:“Database information”,“version”:“PostgreSQL 12.2 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.2.0) 9.2.0, 64-bit”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.263Z”,“caller”:“server/leaderboard_rank_cache.go:117”,“msg”:“Initializing leaderboard rank cache”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.263Z”,“caller”:“server/leaderboard_rank_cache.go:240”,“msg”:“Leaderboard rank cache initialization completed successfully”,“cached”:,“skipped”:}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.266Z”,“caller”:“server/runtime.go:571”,“msg”:“Initialising runtime”,“path”:“/nakama/data/modules”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.266Z”,“caller”:“server/runtime.go:578”,“msg”:“Initialising runtime event queue processor”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.267Z”,“caller”:“server/runtime.go:580”,“msg”:“Runtime event queue processor started”,“size”:65536,“workers”:8}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.268Z”,“caller”:“server/runtime_go.go:2396”,“msg”:“Initialising Go runtime provider”,“path”:“/nakama/data/modules”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.268Z”,“caller”:“server/runtime_go.go:2420”,“msg”:“Go runtime modules loaded”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.268Z”,“caller”:“server/runtime_lua.go:110”,“msg”:“Initialising Lua runtime provider”,“path”:“/nakama/data/modules”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.271Z”,“caller”:“server/runtime_lua.go:1116”,“msg”:“Lua runtime modules loaded”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.271Z”,“caller”:“server/runtime_lua.go:1119”,“msg”:“Allocating minimum Lua runtime pool”,“count”:16}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.271Z”,“caller”:“server/runtime_lua.go:1127”,“msg”:“Allocated minimum Lua runtime pool”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.272Z”,“caller”:“server/runtime_javascript.go:578”,“msg”:“Initialising JavaScript runtime provider”,“path”:“/nakama/data/modules”,“entrypoint”:“build/index.js”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.282Z”,“caller”:“server/runtime_javascript_logger.go:74”,“msg”:“TypeScript module loaded.”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.282Z”,“caller”:“server/runtime_javascript.go:1572”,“msg”:“JavaScript runtime modules loaded”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.282Z”,“caller”:“server/runtime_javascript.go:1575”,“msg”:“Allocating minimum JavaScript runtime pool”,“count”:16}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.322Z”,“caller”:“server/runtime_javascript.go:1583”,“msg”:“Allocated minimum JavaScript runtime pool”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.322Z”,“caller”:“server/runtime.go:613”,“msg”:“Found runtime modules”,“count”:1,“modules”:[“index.js”]}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.322Z”,“caller”:“server/runtime.go:630”,“msg”:“Registered JavaScript runtime RPC function invocation”,“id”:“healthcheck”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.323Z”,“caller”:“server/leaderboard_scheduler.go:92”,“msg”:“Leaderboard scheduler start”}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.323Z”,“caller”:“server/leaderboard_scheduler.go:279”,“msg”:“Leaderboard scheduler update”,“end_active”:“-1ns”,“end_active_count”:0,“expiry”:“-1ns”,“expiry_count”:0}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.323Z”,“caller”:“server/api.go:131”,“msg”:“Starting API server for gRPC requests”,“port”:7349}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.325Z”,“caller”:“server/api.go:265”,“msg”:“Starting API server gateway for HTTP requests”,“port”:7350}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.331Z”,“caller”:“server/console.go:202”,“msg”:“Starting Console server for gRPC requests”,“port”:7348}
    {“level”:“info”,“ts”:“2022-06-30T16:12:49.334Z”,“caller”:“server/console.go:296”,“msg”:“Starting Console server gateway for HTTP requests”,“port”:7351}
    {“level”:“info”,“ts”:“2022-06-30T16:12:50.931Z”,“caller”:“main.go:184”,“msg”:“Startup done”}
    {“level”:“info”,“ts”:“2022-06-30T16:13:29.493Z”,“caller”:“server/session_ws.go:80”,“msg”:“New WebSocket session connected”,“uid”:“5d38a2b2-0e6a-4e65-a994-436c04ecb87c”,“sid”:“945f5528-f88f-11ec-b44b-006100a0eb06”,“format”:0}

Thanks @hawaiiden. On looking at the documentation and the github repository for the XOXO project it seems we have failed to include the custom server runtime project source files which would enable you to run the game. Since you are trying to run it against a vanilla instance of Nakama that is missing the necessary authoritative match handler code this will be why you are getting the 404 errors.

We will look into fixing this and making the associated server runtime code available as soon as we are able and I must apologise for the inconvenience.

In the meantime, the server runtime code is briefly covered in the Nakama XOXO video tutorials that accompanies this project which you may wish to look at.

Ok. I’ll be wait for fix this issue.

Thanks.

I am running into this same issue. I’m working through the example to try to understand how I can implement my own game with Nakama.js, and I’m finding the documentation to be incomplete. I’ve been searching all day for complete examples or at least complete documentation of the available methods and arguments, and I’m not finding anything. How is one supposed to learn how to implement a game with Nakama?

@dzso the server code example can be found here. Hope this helps.