mirror of
https://github.com/elyby/chrly.git
synced 2024-11-22 21:23:17 +05:30
Update docs
This commit is contained in:
parent
a4a9201034
commit
9946eae73b
20
CHANGELOG.md
20
CHANGELOG.md
@ -6,7 +6,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased] - xxxx-xx-xx
|
## [Unreleased] - xxxx-xx-xx
|
||||||
### Added
|
### Added
|
||||||
- Added remote mode for Mojang's textures queue.
|
- Remote mode for Mojang's textures queue with a new configuration params: `MOJANG_TEXTURES_UUIDS_PROVIDER_DRIVER` and
|
||||||
|
`MOJANG_TEXTURES_UUIDS_PROVIDER_URL`.
|
||||||
|
|
||||||
|
For example, to send requests directly to [Mojang's APIs](https://wiki.vg/Mojang_API#Username_-.3E_UUID_at_time),
|
||||||
|
set the next configuration:
|
||||||
|
- `MOJANG_TEXTURES_UUIDS_PROVIDER_DRIVER=remote`
|
||||||
|
- `MOJANG_TEXTURES_UUIDS_PROVIDER_URL=https://api.mojang.com/users/profiles/minecraft/`
|
||||||
|
- Implemented worker mode. The app starts with the only one API endpoint: `/api/worker/mojang-uuid/{username}`,
|
||||||
|
which is compatible with [Mojang's endpoint](https://wiki.vg/Mojang_API#Username_-.3E_UUID_at_time) to exchange
|
||||||
|
username to its UUID. It can be used with some load balancing software to increase throughput of Mojang's textures
|
||||||
|
proxy by splitting the load across multiple servers with its own IPs.
|
||||||
|
|
||||||
- New StatsD metrics:
|
- New StatsD metrics:
|
||||||
- Counters:
|
- Counters:
|
||||||
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.textures_hit`
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.textures_hit`
|
||||||
@ -14,10 +25,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.iteration_size` and
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.iteration_size` and
|
||||||
`ely.skinsystem.{hostname}.app.mojang_textures.usernames.queue_size` are now updated even if the queue is empty.
|
`ely.skinsystem.{hostname}.app.mojang_textures.usernames.queue_size` are now updates even if the queue is empty.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Event `ely.skinsystem.{hostname}.app.mojang_textures.already_in_queue` has been renamed into `ely.skinsystem.{hostname}.app.mojang_textures.already_scheduled`.
|
- **BREAKING**: `QUEUE_LOOP_DELAY` param is now sets as a Go duration, not milliseconds.
|
||||||
|
For example, default value is now `2s500ms`.
|
||||||
|
- **BREAKING**: Event `ely.skinsystem.{hostname}.app.mojang_textures.already_in_queue` has been renamed into
|
||||||
|
`ely.skinsystem.{hostname}.app.mojang_textures.already_scheduled`.
|
||||||
|
|
||||||
## [4.3.0] - 2019-11-08
|
## [4.3.0] - 2019-11-08
|
||||||
### Added
|
### Added
|
||||||
|
80
README.md
80
README.md
@ -57,12 +57,80 @@ docker-compose up -d app
|
|||||||
|
|
||||||
**Variables to adjust:**
|
**Variables to adjust:**
|
||||||
|
|
||||||
| ENV | Description | Example |
|
<table>
|
||||||
|--------------------|-------------------------------------------------------------------------------------------------|-------------------------------------------|
|
<thead>
|
||||||
| STORAGE_REDIS_POOL | By default, Chrly creates pool with 10 connection, but you may want to increase it | `20` |
|
<tr>
|
||||||
| STATSD_ADDR | StatsD can be used to collect metrics | `localhost:8125` |
|
<th>ENV</th>
|
||||||
| SENTRY_DSN | Sentry can be used to collect app errors | `https://public:private@your.sentry.io/1` |
|
<th>Description</th>
|
||||||
| QUEUE_LOOP_DELAY | Parameter is sets the delay before each iteration of the Mojang's textures queue (milliseconds) | `3200` |
|
<th>Example</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>STORAGE_REDIS_HOST</td>
|
||||||
|
<td>
|
||||||
|
By default, Chrly tries to connect to the <code>redis</code> host
|
||||||
|
(by service name in docker-compose configuration).
|
||||||
|
</td>
|
||||||
|
<td><code>localhost</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>STORAGE_REDIS_PORT</td>
|
||||||
|
<td>
|
||||||
|
Specifies the Redis connection port.
|
||||||
|
</td>
|
||||||
|
<td><code>6379</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>STORAGE_REDIS_POOL</td>
|
||||||
|
<td>By default, Chrly creates pool with 10 connection, but you may want to increase it</td>
|
||||||
|
<td><code>20</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>STATSD_ADDR</td>
|
||||||
|
<td>StatsD can be used to collect metrics</td>
|
||||||
|
<td><code>localhost:8125</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>SENTRY_DSN</td>
|
||||||
|
<td>Sentry can be used to collect app errors</td>
|
||||||
|
<td><code>https://public:private@your.sentry.io/1</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>QUEUE_LOOP_DELAY</td>
|
||||||
|
<td>
|
||||||
|
Parameter is sets the delay before each iteration of the Mojang's textures queue
|
||||||
|
(<a href="https://golang.org/pkg/time/#ParseDuration">Go's duration</a>)
|
||||||
|
</td>
|
||||||
|
<td><code>3s200ms</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>QUEUE_BATCH_SIZE</td>
|
||||||
|
<td>
|
||||||
|
Sets the count of usernames, which will be sent to the
|
||||||
|
<a href="https://wiki.vg/Mojang_API#Playernames_-.3E_UUIDs">Mojang's API to exchange them to their UUIDs</a>.
|
||||||
|
The current limit is <code>10</code>, but it may change in the future, so you may want to adjust it.
|
||||||
|
</td>
|
||||||
|
<td><code>10</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>MOJANG_TEXTURES_UUIDS_PROVIDER_DRIVER</td>
|
||||||
|
<td>
|
||||||
|
Specifies the preferred provider of the Mojang's UUIDs. Takes <code>remote</code> value.
|
||||||
|
In any other case, the local queue will be used.
|
||||||
|
</td>
|
||||||
|
<td><code>remote</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>MOJANG_TEXTURES_UUIDS_PROVIDER_URL</td>
|
||||||
|
<td>
|
||||||
|
When the UUIDs driver set to <code>remote</code>, sets the remote URL.
|
||||||
|
The trailing slash won't cause any problems.
|
||||||
|
</td>
|
||||||
|
<td><code>http://remote-provider.com/api/worker/mojang-uuid</code></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
If something goes wrong, you can always access logs by executing `docker-compose logs -f app`.
|
If something goes wrong, you can always access logs by executing `docker-compose logs -f app`.
|
||||||
|
|
||||||
|
@ -20,6 +20,15 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
CHRLY_SECRET: replace_this_value_in_production
|
CHRLY_SECRET: replace_this_value_in_production
|
||||||
|
|
||||||
|
# Use this configuration in case when you need a remote Mojang UUIDs provider
|
||||||
|
# worker:
|
||||||
|
# image: elyby/chrly
|
||||||
|
# hostname: chrly0
|
||||||
|
# restart: always
|
||||||
|
# ports:
|
||||||
|
# - "8080:80"
|
||||||
|
# command: ["worker"]
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: redis:4.0-32bit # 32-bit version is recommended to spare some memory
|
image: redis:4.0-32bit # 32-bit version is recommended to spare some memory
|
||||||
restart: always
|
restart: always
|
||||||
|
@ -5,7 +5,7 @@ if [ ! -d /data/capes ]; then
|
|||||||
mkdir -p /data/capes
|
mkdir -p /data/capes
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$1" = "serve" ] || [ "$1" = "token" ] || [ "$1" = "version" ]; then
|
if [ "$1" = "serve" ] || [ "$1" = "worker" ] || [ "$1" = "token" ] || [ "$1" = "version" ]; then
|
||||||
set -- /usr/local/bin/chrly "$@"
|
set -- /usr/local/bin/chrly "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ type Skinsystem struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ctx *Skinsystem) Run() error {
|
func (ctx *Skinsystem) Run() error {
|
||||||
ctx.Logger.Info(fmt.Sprintf("Starting, HTTP on: %s\n", ctx.ListenSpec))
|
ctx.Logger.Info(fmt.Sprintf("Starting the app, HTTP on: %s\n", ctx.ListenSpec))
|
||||||
|
|
||||||
listener, err := net.Listen("tcp", ctx.ListenSpec)
|
listener, err := net.Listen("tcp", ctx.ListenSpec)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -26,7 +26,7 @@ type UUIDsWorker struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ctx *UUIDsWorker) Run() error {
|
func (ctx *UUIDsWorker) Run() error {
|
||||||
ctx.Logger.Info(fmt.Sprintf("Starting, HTTP on: %s\n", ctx.ListenSpec))
|
ctx.Logger.Info(fmt.Sprintf("Starting the worker, HTTP on: %s\n", ctx.ListenSpec))
|
||||||
|
|
||||||
listener, err := net.Listen("tcp", ctx.ListenSpec)
|
listener, err := net.Listen("tcp", ctx.ListenSpec)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user