Skip to content

Commit

Permalink
Merge pull request #52 from SEbbaDK/server-scale
Browse files Browse the repository at this point in the history
server: Allow higher load on server
  • Loading branch information
SEbbaDK authored May 27, 2021
2 parents 6a3dee5 + 4dd518b commit 61ab759
Show file tree
Hide file tree
Showing 15 changed files with 203 additions and 207 deletions.
19 changes: 0 additions & 19 deletions .github/workflows/server.yml

This file was deleted.

22 changes: 13 additions & 9 deletions api-server.nix
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@
let
maptogether-server = import ./server { inherit pkgs; };
mockData = ''
${builtins.readFile ./server/database/mock-users.sql}
${builtins.readFile ./server/database/mock-contributions.sql}
${builtins.readFile ./server/database/mock-achievements.sql}
${builtins.readFile ./server/database/mock-follows.sql}
${builtins.readFile ./database/mock-users.sql}
${builtins.readFile ./database/mock-contributions.sql}
${builtins.readFile ./database/mock-achievements.sql}
${builtins.readFile ./database/mock-follows.sql}
'';
databaseSetup = ./server/database/create-role-and-database.sql;
databaseSetup = ./database/create-role-and-database.sql;
tableSetup = pkgs.writeText "setup.sql" ''
${builtins.readFile ./server/database/create-tables.sql}
${builtins.readFile ./server/database/create-materialized-views.sql}
${builtins.readFile ./database/create-tables.sql}
${builtins.readFile ./database/create-materialized-views.sql}
${mockData}
'';
in
Expand All @@ -23,11 +23,15 @@ in

services.postgresql = {
enable = true;
settings = {
max_connections = 1000;
shared_buffers = "512MB";
};
# ensureUsers = [{
# name = "maptogether";
# ensurePermissions = { "DATABASE maptogether" = "ALL PRIVILEGES"; };
# }];
# initialScript = ./server/database/create-role-and-database.sql;
# initialScript = ./database/create-role-and-database.sql;
};

systemd.services.maptogether-database-setup = {
Expand Down Expand Up @@ -70,7 +74,7 @@ in
Type = "oneshot";
User = "maptogether";
Group = "maptogether";
ExecStart = "${pkgs.postgresql}/bin/psql -d maptogether -f ${./server/database/refresh-materialized-views.sql}";
ExecStart = "${pkgs.postgresql}/bin/psql -d maptogether -f ${./database/refresh-materialized-views.sql}";
};
requires = [ "maptogether-database-setup.service" "postgresql.service" ];
after = [ "maptogether-database-setup.service" "postgresql.service" ];
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion nixpkgs.nix
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
import (fetchTarball "https://github.com/nixos/nixpkgs/archive/39e6bf76474ce742eb027a88c4da6331f0a1526f.tar.gz")
import (fetchTarball "https://github.com/nixos/nixpkgs/archive/0995d4e24d10257bc25dcc7d9f88653437c0a7eb.tar.gz")

24 changes: 24 additions & 0 deletions server.nix
Original file line number Diff line number Diff line change
@@ -1,10 +1,23 @@
let
pkgs = import ./nixpkgs.nix { };
apiPort = 3000;
cacheDir = "/var/nginx-cache";
in
{
networking.firewall.allowedTCPPorts = [ 80 443 ];

systemd.services.mkcachedir = {
serviceConfig = {
Type = "oneshot";
User = "root";
Group = "root";
ExecStart = "/bin/sh -c 'rm -rf ${cacheDir} && mkdir ${cacheDir} && chown -R nginx:nginx ${cacheDir} && chmod +w ${cacheDir}'";
};
before = [ "nginx.service" ];
wantedBy = [ "default.target" ];
};

systemd.services.nginx.serviceConfig.ReadWritePaths = [ "${cacheDir}" ];
services.nginx = {
enable = true;

Expand All @@ -21,10 +34,21 @@ in
'';
"/api".extraConfig = ''
rewrite ^/api/(.*) /$1 break;
proxy_cache api_cache;
proxy_ignore_headers Cache-Control;
proxy_cache_valid any 30s;
proxy_pass http://localhost:${builtins.toString apiPort};
'';
};
};

appendHttpConfig = ''
proxy_cache_path ${cacheDir} levels=1:2 keys_zone=api_cache:2m max_size=1g inactive=60m use_temp_path=off;
'';

eventsConfig = ''
worker_connections 50000;
'';
};

containers.api = {
Expand Down
2 changes: 0 additions & 2 deletions server/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ in
# Disable tests until they work
doCheck = false;
doInstallCheck = false;

crystalBinaries.maptogether-server.src = "src/maptogether-server.cr";
})
# This line enables quicker builds
.overrideAttrs (old: { buildPhase = builtins.replaceStrings [ "--release" ] [ "" ] old.buildPhase; })
2 changes: 1 addition & 1 deletion server/shard.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: maptogether-server
version: 0.3.2
version: 0.3.3

authors:
- SEbbaDK
Expand Down
Loading

0 comments on commit 61ab759

Please sign in to comment.