diff --git a/site/content/_index.md b/site/content/_index.md index f66bf42..fedb821 100644 --- a/site/content/_index.md +++ b/site/content/_index.md @@ -4,8 +4,7 @@ title: "Home" There are lots of new technologies and application patterns associated with microservices. If you're like us, learning from reading someone's sample just isn't enough. - -[Game On!](https://gameontext.org/) is a throwback text-based adventure built to +Game On! Text adventure is a throwback text-based adventure built to help you explore microservice architectures and related concepts. There are a few reasons why we love this application: diff --git a/site/content/about/game_play.adoc b/site/content/about/game_play.adoc index b1b79d3..9587a72 100644 --- a/site/content/about/game_play.adoc +++ b/site/content/about/game_play.adoc @@ -9,7 +9,6 @@ type: book :toc-placement: macro :toclevels: 2 :services: link:/architecture/ -:swagger: https://gameontext.org/swagger/ :security: link:/architecture/application-security.html :registerRoom: link:/walkthroughs/registerRoom.html :mapService: link:/architecture/map.html @@ -80,7 +79,7 @@ strange) and logging out. It also displays the JSON Web Token (JWT) generated by your login. The game's use of JWTs is described more in the {security}[Application Security] section. We provide the JWT here so you can use it to test out requests requiring -authorization in the {swagger}[Swagger] API documentation. +authorization in the API documentation. [[shared-secret]] == Room management @@ -97,7 +96,7 @@ identify and authorize you to the Map service so that you can make changes to rooms you have registered. + The room management page uses your shared secret for you when modifying your -room registrations, but if you wanted to try talking to the {swagger}[Map API] on your +room registrations, but if you wanted to try talking to the Map API on your own, or on the command line using the {mapClient}[map client], you would need to copy this token. diff --git a/site/content/architecture/application-security.adoc b/site/content/architecture/application-security.adoc index 8a63284..81cec24 100644 --- a/site/content/architecture/application-security.adoc +++ b/site/content/architecture/application-security.adoc @@ -11,7 +11,6 @@ aliases: :toc-title: :toc-placement: preamble :toclevels: 3 -:swagger: https://gameontext.org/swagger/ :hmac-rfc: http://www.ietf.org/rfc/rfc2104 :jwt-java: https://github.com/jwtk/jjwt :jsrsasign: http://kjur.github.io/jsrsasign/ diff --git a/site/content/architecture/core-services.adoc b/site/content/architecture/core-services.adoc index 861b07e..88fd6b4 100644 --- a/site/content/architecture/core-services.adoc +++ b/site/content/architecture/core-services.adoc @@ -12,7 +12,6 @@ type: book :recroom: https://github.com/gameontext/gameon-room :security: link:application-security.html :simpleroom: https://github.com/gameontext/sample-room-java -:swagger: https://gameontext.org/swagger/ :WebSocket: link:websocket-protocol.html :walkthroughs: link:/walkthroughs/ @@ -68,7 +67,7 @@ one in our next integration pass. == Player Players are represented by the player service, which provides a -{swagger}[public API] for CRUD operations, and for managing API tokens. +public API for CRUD operations, and for managing API tokens. The Player service was one of the first to exist, and is implemented in Java using WebSphere Liberty. It stores data in either couchdb (local) or Cloudant. @@ -129,7 +128,7 @@ preventing repeated access to those rooms until they have been restored. and empty) rooms. The Map service is a Java EE application running on WebSphere Liberty that -provides a {swagger}[public REST API] using JAX-RS. It stores +provides a public REST API using JAX-RS. It stores data in a NoSQL data store, either couchdb or Cloudant. Methods that modify the map require {security}[signed requests]. @@ -145,7 +144,7 @@ documented {WebSocket}[WebSocket protocol]. == Proxy/Gateway We have a single proxy/gateway that is haproxy based, and is responsible -for surfacing the {swagger}[collection of APIs] as a single facade for +for surfacing the collection of APIs as a single facade for the entire application. Today this proxy identifies services via url patterns, and where a request is diff --git a/site/content/architecture/map.adoc b/site/content/architecture/map.adoc index 0083138..fd59650 100644 --- a/site/content/architecture/map.adoc +++ b/site/content/architecture/map.adoc @@ -13,12 +13,11 @@ aliases: :toclevels: 2 :12-factor: link:/about/twelve-factors.html :security: link:application-security.html -:swagger: https://gameontext.org/swagger/ :repo: https://github.com/gameontext/gameon-map The Map is one of the game's core services. It is implemented in Java using WebSphere Liberty. The source is {repo}[available on GitHub]. The public REST API -is {swagger}[browsable with Swagger]. What follows is a very +is browsable with Swagger. What follows is a very description of how the internals of the map service work. == API, Language, and Runtime diff --git a/site/content/architecture/other-services.adoc b/site/content/architecture/other-services.adoc index 41d78b4..4516e43 100644 --- a/site/content/architecture/other-services.adoc +++ b/site/content/architecture/other-services.adoc @@ -12,7 +12,6 @@ type: book :recroom: https://github.com/gameontext/gameon-room :security: link:application-security.html :simpleroom: https://github.com/gameontext/sample-room-java -:swagger: https://gameontext.org/swagger/ :WebSocket: link:websocket-protocol.html :walkthroughs: link:/walkthroughs/ @@ -20,7 +19,7 @@ image:/images/OtherServices.jpeg["Other services",align="center"] == Swagger -A simple process that serves the swagger UI with our {swagger}[swagger API documents]. +A simple process that serves the swagger UI with our swagger API documents. == Room implementations diff --git a/site/content/architecture/platform-services.adoc b/site/content/architecture/platform-services.adoc index 0f59abf..d670013 100644 --- a/site/content/architecture/platform-services.adoc +++ b/site/content/architecture/platform-services.adoc @@ -12,7 +12,6 @@ type: book :recroom: https://github.com/gameontext/gameon-room :security: link:application-security.html :simpleroom: https://github.com/gameontext/sample-room-java -:swagger: https://gameontext.org/swagger/ :WebSocket: link:websocket-protocol.html :walkthroughs: link:/walkthroughs/ diff --git a/site/content/architecture/websocket-protocol.adoc b/site/content/architecture/websocket-protocol.adoc index 82e26ce..6090067 100644 --- a/site/content/architecture/websocket-protocol.adoc +++ b/site/content/architecture/websocket-protocol.adoc @@ -11,7 +11,6 @@ aliases: :toc-title: :toc-placement: preamble :toclevels: 3 -:swagger: https://gameontext.org/swagger/ :security: link:application-security.html WebSockets are currently used for two-way asynchronous communication between the Client @@ -116,7 +115,7 @@ The commands included in the `ack` are the common commands that are always suppo ---- player,,{ - "type": "status", + "type": "joinpart", "content": "text update" } ---- diff --git a/site/content/chronicles/3-web-front-end.adoc b/site/content/chronicles/3-web-front-end.adoc index a3cc6b8..b629f35 100644 --- a/site/content/chronicles/3-web-front-end.adoc +++ b/site/content/chronicles/3-web-front-end.adoc @@ -30,7 +30,7 @@ of the various backend services. We added CORS filters to the app for the time being and moved on. As a sidenote, we did alleviate this later by also using a proxy -locally. We could also have addressed this using xip.io to create a +locally. We could also have addressed this using nip.io to create a locally consistent domain, but for that to work, you would need to have a live internet connection so the xio.io domain to resolve. Some of us are those crazies that work on planes that don't have wifi ... diff --git a/site/content/posts/2018-01-11-GameOn-Kubernetes.md b/site/content/posts/2018-01-11-GameOn-Kubernetes.md index d62c9f5..2147ea8 100644 --- a/site/content/posts/2018-01-11-GameOn-Kubernetes.md +++ b/site/content/posts/2018-01-11-GameOn-Kubernetes.md @@ -38,7 +38,7 @@ It's as simple as; To check on progress, you can check the cluster gui, or use kubectl to check on the status of the pods in the `gameon-system` namespace. ( `kubectl get pods --namespace=gameon-system -o wide`) -After a short while, once the the pods are all up and running, you should be able to access your Game On! at `https://gameon.192.168.99.100.xip.io` +After a short while, once the the pods are all up and running, you should be able to access your Game On! at `https://gameon.192.168.99.100.nip.io` Swap `192.168.99.100` for your cluster ip, the same value you set in `GAMEON_HOST` @@ -50,9 +50,9 @@ Each of the core services has their own yaml, that contains both a kubernetes [s The `ingress.yaml` defines a [kubernetes ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) that acts as the front door for the whole setup, routing requests to the appropriate service. Requets are mapped using the path part of the URL just as happens in the `proxy` service when running outside of Kubernetes. `ingress.yaml` also defines and enables HTTPS for the front door, and if we wanted, we could [configure a certificate](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) to be used for HTTPS in the yaml here. -Lastly, we're using [xip.io](http://xip.io/) which is a handy service that allows you to create hostnames that map to ip addresses, without needing to edit `/etc/hosts` etc. Any url ending in `ipaddress.xip.io` resolves to `ipaddress`, so in our case `gameon.192.168.99.100.xip.io` will resolve to `192.168.99.100`, this is great, because ingress definitions require a hostname, not an ip address, and this lets us create one for testing, without any setup. +Lastly, we're using [nip.io](http://nip.io/) which is a handy service that allows you to create hostnames that map to ip addresses, without needing to edit `/etc/hosts` etc. Any url ending in `ipaddress.nip.io` resolves to `ipaddress`, so in our case `gameon.192.168.99.100.nip.io` will resolve to `192.168.99.100`, this is great, because ingress definitions require a hostname, not an ip address, and this lets us create one for testing, without any setup. -*TIP:* _your router may be "helpful" and block dns resolution for ip addresses in private networks, such as 192.168.x.x or 10.x.x.x, if so, look in your router for if you can configure a Domain Whitelist for xip.io for RFC1918 responses. This is required at least for OpenWRT/LEDE. If you can't unblock that, you'll have to resort to editing /etc/hosts or equivalent for your platform._ +*TIP:* _your router may be "helpful" and block dns resolution for ip addresses in private networks, such as 192.168.x.x or 10.x.x.x, if so, look in your router for if you can configure a Domain Whitelist for nip.io for RFC1918 responses. This is required at least for OpenWRT/LEDE. If you can't unblock that, you'll have to resort to editing /etc/hosts or equivalent for your platform._ ## Pods of fun! diff --git a/site/content/walkthroughs/advanced/elk-stack.adoc b/site/content/walkthroughs/advanced/elk-stack.adoc index ac4ff20..c580b00 100644 --- a/site/content/walkthroughs/advanced/elk-stack.adoc +++ b/site/content/walkthroughs/advanced/elk-stack.adoc @@ -17,7 +17,6 @@ aliases: :docker-go: https://github.com/gameontext/gameon-room-go#introduction :docker-java: https://github.com/gameontext/gameon-room-java#deploy-using-docker :first-room: https://gameontext.org/#/play -:swagger: https://gameontext.org/swagger/ :sweep: link:/architecture/the-sweep.html :WebSocket: link:/architecture/websocket-protocol.html diff --git a/site/content/walkthroughs/advanced/room-from-scratch.adoc b/site/content/walkthroughs/advanced/room-from-scratch.adoc index 4370307..2c67e49 100644 --- a/site/content/walkthroughs/advanced/room-from-scratch.adoc +++ b/site/content/walkthroughs/advanced/room-from-scratch.adoc @@ -12,7 +12,6 @@ aliases: :toc-placement: preamble :toclevels: 2 :protocol: link:/architecture/websocket-protocol.html -:swagger: https://gameontext.org/swagger/ :interactivemap: https://gameontext.org/interactivemap :regutil: https://github.com/gameontext/regutil :registerroom: link:/walkthroughs/register-room.html @@ -64,7 +63,7 @@ A room in Game On is basically a WebSocket endpoint, hosted in a way where Game Either the endpoint needs to be directly accessible from the internet (eg, if it's running within a cloud container with a public bound ip address, or route).. or indirectly (eg, via a port forward on your own router). -The room is registered to the Game On Map Service, either directly via the Map service {swagger}[REST API], or using the in-game +The room is registered to the Game On Map Service, either directly via the Map service REST API, or using the in-game room management page, or the CLI {regutil}[regutil] or even via the {interactivemap}[Interactive Map]. If you are new to Game On, we'd strongly recommend using the in-game room management page. Look {registerroom}[here] for more info. diff --git a/site/content/walkthroughs/register-room.adoc b/site/content/walkthroughs/register-room.adoc index 72119a6..1d8c2c6 100644 --- a/site/content/walkthroughs/register-room.adoc +++ b/site/content/walkthroughs/register-room.adoc @@ -17,7 +17,6 @@ aliases: :samples: https://github.com/gameontext?utf8=✓&q=sample-room :more: link:advanced/ :first-room: https://gameontext.org/#/play -:swagger: https://gameontext.org/swagger/ :sweep: link:/architecture/the-sweep.html :WebSocket: link:/architecture/websocket-protocol.html diff --git a/site/layouts/_default/baseof.html b/site/layouts/_default/baseof.html index e1c0e05..a8709cc 100644 --- a/site/layouts/_default/baseof.html +++ b/site/layouts/_default/baseof.html @@ -31,10 +31,10 @@

GAMEON {{ end }} @@ -43,10 +43,9 @@

GAMEON
© 2016-{{ now.Format "2006"}} under terms of the Apache License 2.0.
-
Follow us: + -{{ template "_internal/google_analytics_async.html" . }}