Etebase: Difference between revisions

Added CLI Method, changed global.secret_file comment, fixed NixOS syntax highlighting
Klinger (talk | contribs)
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
[https://www.etebase.com/ {{PAGENAME}}] is an end-to-end encrypted backend as a service. Think Firebase, but encrypted in a way that only your users can access their data.
[https://www.etebase.com/ {{PAGENAME}}] is an end-to-end encrypted backend as a service. Think Firebase, but encrypted in a way that only your users can access their data.


== Example configurations ==
* For the server to accept requests from a remote machine {{nixos:option|services.etebase-server.settings.allowed_hosts.allowed_host1}} variable should be set as the server's subdomain/domain name and your proxy has to present a {{ic| Host}} header.
* The django [https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-SECRET_KEY secret key] is preferably a randomly generated key, the use of a secret managing scheme might prove useful. see [[Comparison_of_secret_managing_schemes]].
* {{nixos:option|services.etebase-server.global.secret_file}} needs to be writeable by configured {{nixos:option|services.etebase-server.user}}. If you're experiencing errors on initial setup, make sure there is no file at the filepath so that Etebase can generate it
=== Nginx example ===
This is a basic configuration to run the Etebase server:
This is a basic configuration to run the Etebase server:


Line 12: Line 20:
       settings = {
       settings = {
         global.debug = false;
         global.debug = false;
         global.secret_file = "/path/to/secret"; # Needs to be a non-existing filepath, which is writeable by configured user
         global.secret_file = "/path/to/secret";
         allowed_hosts.allowed_host1 = "etebase.your.domain";
         allowed_hosts.allowed_host1 = "etebase.your.domain";
       };
       };
Line 31: Line 39:
</syntaxhighlight>
</syntaxhighlight>


For the server to accept requests from a remote machine {{ic| allowed_host1}} variable should be set as the server's subdomain/domain name and your proxy has to present a  {{ic| Host}} header.
=== Caddy example ===
<syntaxhighlight lang="nixos">
services.caddy = {
  enable = true;
  virtualHosts = {
    "etebase.your.domain".extraConfig = ''
      reverse_proxy 127.0.0.1:8001 {
        header_up Host {upstream_hostport}
      }
    '';
  };
};


The django [https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-SECRET_KEY secret key] is preferably a randomly generated key, the use of a secret managing scheme might prove useful. see [[Comparison_of_secret_managing_schemes]].
services.etebase-server = {
  enable = true;
  settings = {
    allowed_hosts = {
      allowed_host2 = "etebase.your.domain";
      allowed_host1 = "127.0.0.1";
    };
    global.secret_file = "/path/to/secret";
  };
};
</syntaxhighlight>


== Admin user ==
== Admin user ==
Line 62: Line 91:


[[Category:Server]]
[[Category:Server]]
[[Category:Django]]