mirror of
https://github.com/evennia/evennia.git
synced 2026-03-25 01:06:32 +01:00
Updated HTML docs
This commit is contained in:
parent
66d0ad0bc9
commit
7900aad365
2073 changed files with 32986 additions and 41197 deletions
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="apache-config">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="apache-config">
|
||||
<h1>Apache Config<a class="headerlink" href="#apache-config" title="Permalink to this headline">¶</a></h1>
|
||||
<p><strong>Warning</strong>: This information is presented as a convenience, using another webserver than Evennia’s
|
||||
own is not directly supported and you are on your own if you want to do so. Evennia’s webserver
|
||||
|
|
@ -121,10 +123,10 @@ some Linux distributions may default to very restrictive access permissions on a
|
|||
directory.</p>
|
||||
<p>One user commented that they had to add the following to their Apache config to get things to work.
|
||||
Not confirmed, but worth trying if there are trouble.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o"><</span><span class="n">Directory</span> <span class="s2">"/home/<yourname>/evennia/game/web"</span><span class="o">></span>
|
||||
<span class="n">Options</span> <span class="o">+</span><span class="n">ExecCGI</span>
|
||||
<span class="n">Allow</span> <span class="kn">from</span> <span class="nn">all</span>
|
||||
<span class="o"></</span><span class="n">Directory</span><span class="o">></span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span><Directory "/home/<yourname>/evennia/game/web">
|
||||
Options +ExecCGI
|
||||
Allow from all
|
||||
</Directory>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -143,6 +145,7 @@ repositories for Fedora and RHEL:</p>
|
|||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ dnf install httpd mod_ssl
|
||||
or
|
||||
$ yum install httpd mod_ssl
|
||||
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
|
|
@ -153,6 +156,7 @@ installation:</p>
|
|||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ apt-get update
|
||||
$ apt-get install apache2
|
||||
$ a2enmod ssl
|
||||
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
|
|
@ -205,7 +209,7 @@ proxy. You must set the <code class="docutils literal notranslate"><span class="
|
|||
</pre></div>
|
||||
</div>
|
||||
<p>The setting above is what the client’s browser will actually use. Note the use of <code class="docutils literal notranslate"><span class="pre">wss://</span></code> is
|
||||
because our client will be communicating over an encrypted connection (”wss” indicates websocket
|
||||
because our client will be communicating over an encrypted connection (“wss” indicates websocket
|
||||
over SSL/TLS). Also, especially note the additional path <code class="docutils literal notranslate"><span class="pre">/ws</span></code> at the end of the URL. This is how
|
||||
Apache HTTP Server identifies that a particular request should be proxied to Evennia’s websocket
|
||||
port but this should be applicable also to other types of proxies (like nginx).</p>
|
||||
|
|
@ -279,7 +283,7 @@ port but this should be applicable also to other types of proxies (like nginx).<
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Apache-Config.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="choosing-an-sql-server">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="choosing-an-sql-server">
|
||||
<h1>Choosing An SQL Server<a class="headerlink" href="#choosing-an-sql-server" title="Permalink to this headline">¶</a></h1>
|
||||
<p>This page gives an overview of the supported SQL databases as well as instructions on install:</p>
|
||||
<ul class="simple">
|
||||
|
|
@ -79,7 +81,7 @@ Apache), a proper database is a more appropriate choice.</p></li>
|
|||
<h3>Install of SQlite3<a class="headerlink" href="#install-of-sqlite3" title="Permalink to this headline">¶</a></h3>
|
||||
<p>This is installed and configured as part of Evennia. The database file is created as
|
||||
<code class="docutils literal notranslate"><span class="pre">mygame/server/evennia.db3</span></code> when you run</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">migrate</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia migrate
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>without changing any database options. An optional requirement is the <code class="docutils literal notranslate"><span class="pre">sqlite3</span></code> client program -
|
||||
|
|
@ -88,13 +90,11 @@ evennia database is <code class="docutils literal notranslate"><span class="pre"
|
|||
distro while Mac/Windows should get the <a class="reference external" href="https://sqlite.org/download.html">sqlite-tools package from this
|
||||
page</a>.</p>
|
||||
<p>To inspect the default Evennia database (once it’s been created), go to your game dir and do</p>
|
||||
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||||
<span class="normal">2</span>
|
||||
<span class="normal">3</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> sqlite3 server/evennia.db3
|
||||
<span class="c1"># or </span>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span> sqlite3 server/evennia.db3
|
||||
<span class="c1"># or</span>
|
||||
evennia dbshell
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>This will bring you into the sqlite command line. Use <code class="docutils literal notranslate"><span class="pre">.help</span></code> for instructions and <code class="docutils literal notranslate"><span class="pre">.quit</span></code> to exit.
|
||||
See <a class="reference external" href="https://gist.github.com/vincent178/10889334">here</a> for a cheat-sheet of commands.</p>
|
||||
</section>
|
||||
|
|
@ -112,30 +112,18 @@ download page</a>. You should be setting up a password for your
|
|||
database-superuser (always called <code class="docutils literal notranslate"><span class="pre">postgres</span></code>) when you install.</p>
|
||||
<p>For interaction with Evennia you need to also install <code class="docutils literal notranslate"><span class="pre">psycopg2</span></code> to your Evennia install (<code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">psycopg2-binary</span></code> in your virtualenv). This acts as the python bridge to the database server.</p>
|
||||
<p>Next, start the postgres client:</p>
|
||||
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> psql -U postgres --password
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span> psql -U postgres --password
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Warning</p>
|
||||
<p>With the <cite>–password</cite> argument, Postgres should prompt you for a password.
|
||||
If it won’t, replace that with <cite>-p yourpassword</cite> instead. Do not use the <cite>-p</cite> argument unless you
|
||||
<p>With the <code class="docutils literal notranslate"><span class="pre">--password</span></code> argument, Postgres should prompt you for a password.
|
||||
If it won’t, replace that with <code class="docutils literal notranslate"><span class="pre">-p</span> <span class="pre">yourpassword</span></code> instead. Do not use the <code class="docutils literal notranslate"><span class="pre">-p</span></code> argument unless you
|
||||
have to since the resulting command, and your password, will be logged in the shell history.</p>
|
||||
</div>
|
||||
<p>This will open a console to the postgres service using the psql client.</p>
|
||||
<p>On the psql command line:</p>
|
||||
<div class="highlight-sql notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">USER</span> <span class="n">evennia</span> <span class="k">WITH</span> <span class="n">PASSWORD</span> <span class="s1">'somepassword'</span><span class="p">;</span>
|
||||
<div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">USER</span> <span class="n">evennia</span> <span class="k">WITH</span> <span class="n">PASSWORD</span> <span class="s1">'somepassword'</span><span class="p">;</span>
|
||||
<span class="k">CREATE</span> <span class="k">DATABASE</span> <span class="n">evennia</span><span class="p">;</span>
|
||||
|
||||
<span class="c1">-- Postgres-specific optimizations</span>
|
||||
|
|
@ -145,11 +133,11 @@ have to since the resulting command, and your password, will be logged in the sh
|
|||
<span class="k">ALTER</span> <span class="k">ROLE</span> <span class="n">evennia</span> <span class="k">SET</span> <span class="n">timezone</span> <span class="k">TO</span> <span class="s1">'UTC'</span><span class="p">;</span>
|
||||
|
||||
<span class="k">GRANT</span> <span class="k">ALL</span> <span class="k">PRIVILEGES</span> <span class="k">ON</span> <span class="k">DATABASE</span> <span class="n">evennia</span> <span class="k">TO</span> <span class="n">evennia</span><span class="p">;</span>
|
||||
<span class="c1">-- Other useful commands: </span>
|
||||
<span class="c1">-- Other useful commands:</span>
|
||||
<span class="c1">-- \l (list all databases and permissions)</span>
|
||||
<span class="c1">-- \q (exit)</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p><a class="reference external" href="https://gist.github.com/Kartones/dd3ff5ec5ea238d4c546">Here</a> is a cheat-sheet for psql commands.</p>
|
||||
<p>We create a database user ‘evennia’ and a new database named <code class="docutils literal notranslate"><span class="pre">evennia</span></code> (you can call them whatever
|
||||
you want though). We then grant the ‘evennia’ user full privileges to the new database so it can
|
||||
|
|
@ -161,18 +149,7 @@ again to recreate the database and grant privileges.</p>
|
|||
<section id="evennia-postgresql-configuration">
|
||||
<h3>Evennia PostgreSQL configuration<a class="headerlink" href="#evennia-postgresql-configuration" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Edit `mygame/server/conf/secret_settings.py and add the following section:</p>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="c1">#</span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1">#</span>
|
||||
<span class="c1"># PostgreSQL Database Configuration</span>
|
||||
<span class="c1">#</span>
|
||||
<span class="n">DATABASES</span> <span class="o">=</span> <span class="p">{</span>
|
||||
|
|
@ -185,14 +162,14 @@ again to recreate the database and grant privileges.</p>
|
|||
<span class="s1">'PORT'</span><span class="p">:</span> <span class="s1">''</span> <span class="c1"># use default</span>
|
||||
<span class="p">}}</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>If you used some other name for the database and user, enter those instead. Run</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">migrate</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia migrate
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>to populate your database. Should you ever want to inspect the database directly you can from now on
|
||||
also use</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">dbshell</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia dbshell
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>as a shortcut to get into the postgres command line for the right database and user.</p>
|
||||
|
|
@ -214,18 +191,16 @@ machines by multiple users. In this configuration, a local data base (such as
|
|||
SQLite3) is not feasible since all the machines and developers do not have
|
||||
access to the file.</p>
|
||||
<p>Choose a remote machine to host the database and PostgreSQl server. Follow the
|
||||
instructions <a class="reference external" href="#install-and-initial-setup-of-postgresql">above</a> on that server to set up the database.
|
||||
instructions <a class="reference internal" href="#install-and-initial-setup-of-postgresql"><span class="std std-doc">above</span></a> on that server to set up the database.
|
||||
Depending on distribution, PostgreSQL will only accept connections on the local
|
||||
machine (localhost). In order to enable remote access, two files need to be
|
||||
changed.</p>
|
||||
<p>First, determine which cluster is running your database. Use <code class="docutils literal notranslate"><span class="pre">pg_lscluster</span></code>:</p>
|
||||
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||||
<span class="normal">2</span>
|
||||
<span class="normal">3</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span>$ pg_lsclusters
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ pg_lsclusters
|
||||
Ver Cluster Port Status Owner Data directory Log file
|
||||
<span class="m">12</span> main <span class="m">5432</span> online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>Next, edit the database’s <code class="docutils literal notranslate"><span class="pre">postgresql.conf</span></code>. This is found on Ubuntu systems
|
||||
in <code class="docutils literal notranslate"><span class="pre">/etc/postgresql/<ver>/<cluster></span></code>, where <code class="docutils literal notranslate"><span class="pre"><ver></span></code> and <code class="docutils literal notranslate"><span class="pre"><cluster></span></code> are
|
||||
what are reported in the <code class="docutils literal notranslate"><span class="pre">pg_lscluster</span></code> output. So, for the above example,
|
||||
|
|
@ -246,7 +221,7 @@ with existing clusters.</p>
|
|||
on any interface.</p>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Warning</p>
|
||||
<p>Setting <cite>listen_addresses</cite> to <cite>‘*’</cite> opens a port on all interfaces. If your
|
||||
<p>Setting <code class="docutils literal notranslate"><span class="pre">listen_addresses</span></code> to <code class="docutils literal notranslate"><span class="pre">'*'</span></code> opens a port on all interfaces. If your
|
||||
server has access to the Internet, ensure your firewall is configured
|
||||
appropriately to limit access to this port as necessary. (You may also list
|
||||
explicit addresses and subnets to listen. See the postgresql documentation
|
||||
|
|
@ -268,11 +243,11 @@ Look for a line with:</p>
|
|||
the PosgreSQL documentation on how to limit this.</p>
|
||||
</div>
|
||||
<p>Now, restart your cluster:</p>
|
||||
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span>$ pg_ctlcluster <span class="m">12</span> main restart
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ pg_ctlcluster <span class="m">12</span> main restart
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>Finally, update the database settings in your Evennia secret_settings.py (as
|
||||
described <a class="reference external" href="#evennia-postgresql-configuration">above</a> modifying <code class="docutils literal notranslate"><span class="pre">SERVER</span></code> and
|
||||
described <a class="reference internal" href="#evennia-postgresql-configuration"><span class="std std-doc">above</span></a> modifying <code class="docutils literal notranslate"><span class="pre">SERVER</span></code> and
|
||||
<code class="docutils literal notranslate"><span class="pre">PORT</span></code> to match your server.</p>
|
||||
<p>Now your Evennia installation should be able to connect and talk with a remote
|
||||
server.</p>
|
||||
|
|
@ -294,19 +269,13 @@ should usually be asked to set up the database root user and password.</p>
|
|||
<p>You will finally also need a Python interface to allow Evennia to talk to the database. Django
|
||||
recommends the <code class="docutils literal notranslate"><span class="pre">mysqlclient</span></code> one. Install this into the evennia virtualenv with <code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">mysqlclient</span></code>.</p>
|
||||
<p>Start the database client (this is named the same for both mysql and mariadb):</p>
|
||||
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span>mysql -u root -p
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mysql -u root -p
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>You should get to enter your database root password (set this up when you installed the database
|
||||
server).</p>
|
||||
<p>Inside the database client interface:</p>
|
||||
<div class="highlight-sql notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||||
<span class="normal">2</span>
|
||||
<span class="normal">3</span>
|
||||
<span class="normal">4</span>
|
||||
<span class="normal">5</span>
|
||||
<span class="normal">6</span>
|
||||
<span class="normal">7</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">USER</span> <span class="s1">'evennia'</span><span class="o">@</span><span class="s1">'localhost'</span> <span class="n">IDENTIFIED</span> <span class="k">BY</span> <span class="s1">'somepassword'</span><span class="p">;</span>
|
||||
<div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">USER</span> <span class="s1">'evennia'</span><span class="o">@</span><span class="s1">'localhost'</span> <span class="n">IDENTIFIED</span> <span class="k">BY</span> <span class="s1">'somepassword'</span><span class="p">;</span>
|
||||
<span class="k">CREATE</span> <span class="k">DATABASE</span> <span class="n">evennia</span><span class="p">;</span>
|
||||
<span class="k">ALTER</span> <span class="k">DATABASE</span> <span class="o">`</span><span class="n">evennia</span><span class="o">`</span> <span class="nb">CHARACTER</span> <span class="k">SET</span> <span class="n">utf8</span><span class="p">;</span> <span class="c1">-- note that it's `evennia` with back-ticks, not</span>
|
||||
<span class="n">quotes</span><span class="o">!</span>
|
||||
|
|
@ -314,7 +283,7 @@ server).</p>
|
|||
<span class="n">FLUSH</span> <span class="k">PRIVILEGES</span><span class="p">;</span>
|
||||
<span class="c1">-- use 'exit' to quit client</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p><a class="reference external" href="https://gist.github.com/hofmannsven/9164408">Here</a> is a mysql command cheat sheet.</p>
|
||||
<p>Above we created a new local user and database (we called both ‘evennia’ here, you can name them
|
||||
what you prefer). We set the character set to <code class="docutils literal notranslate"><span class="pre">utf8</span></code> to avoid an issue with prefix character length
|
||||
|
|
@ -340,40 +309,28 @@ formatted file. Evennia users have however found that this leads to problems (se
|
|||
#1184</a>). To avoid trouble we recommend you simply put the configuration in
|
||||
your settings as below.</p>
|
||||
</div></blockquote>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="c1">#</span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span> <span class="c1">#</span>
|
||||
<span class="c1"># MySQL Database Configuration</span>
|
||||
<span class="c1">#</span>
|
||||
<span class="n">DATABASES</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s1">'default'</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="s1">'ENGINE'</span><span class="p">:</span> <span class="s1">'django.db.backends.mysql'</span><span class="p">,</span>
|
||||
<span class="s1">'NAME'</span><span class="p">:</span> <span class="s1">'evennia'</span><span class="p">,</span>
|
||||
<span class="s1">'USER'</span><span class="p">:</span> <span class="s1">'evennia'</span><span class="p">,</span>
|
||||
<span class="s1">'PASSWORD'</span><span class="p">:</span> <span class="s1">'somepassword'</span><span class="p">,</span>
|
||||
<span class="s1">'NAME'</span><span class="p">:</span> <span class="s1">'evennia'</span><span class="p">,</span>
|
||||
<span class="s1">'USER'</span><span class="p">:</span> <span class="s1">'evennia'</span><span class="p">,</span>
|
||||
<span class="s1">'PASSWORD'</span><span class="p">:</span> <span class="s1">'somepassword'</span><span class="p">,</span>
|
||||
<span class="s1">'HOST'</span><span class="p">:</span> <span class="s1">'localhost'</span><span class="p">,</span> <span class="c1"># or an IP Address that your DB is hosted on</span>
|
||||
<span class="s1">'PORT'</span><span class="p">:</span> <span class="s1">''</span><span class="p">,</span> <span class="c1"># use default port</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>Change this to fit your database setup. Next, run:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">migrate</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia migrate
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>to populate your database. Should you ever want to inspect the database directly you can from now on
|
||||
also use</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">dbshell</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia dbshell
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>as a shortcut to get into the postgres command line for the right database and user.</p>
|
||||
|
|
@ -451,7 +408,7 @@ others. If you try other databases out, consider expanding this page with instru
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Choosing-An-SQL-Server.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,36 +40,29 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="client-support-grid">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="client-support-grid">
|
||||
<h1>Client Support Grid<a class="headerlink" href="#client-support-grid" title="Permalink to this headline">¶</a></h1>
|
||||
<p>This grid tries to gather info about different MU clients when used with Evennia.
|
||||
If you want to report a problem, update an entry or add a client, make a
|
||||
new <a class="reference external" href="https://github.com/evennia/evennia/issues/new/choose">documentation issue</a> for it. Everyone’s encouraged to report their findings.</p>
|
||||
<section id="legend">
|
||||
<h2>Legend:<a class="headerlink" href="#legend" title="Permalink to this headline">¶</a></h2>
|
||||
<section id="client-grid">
|
||||
<h2>Client Grid<a class="headerlink" href="#client-grid" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Legend:</p>
|
||||
<ul class="simple">
|
||||
<li><p><strong>Name</strong>: The name of the client. Also note if it’s OS-specific.</p></li>
|
||||
<li><p><strong>Version</strong>: Which version or range of client versions were tested.</p></li>
|
||||
<li><p><strong>Comments</strong>: Any quirks on using this client with Evennia should be added here.</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="client-grid">
|
||||
<h2>Client Grid<a class="headerlink" href="#client-grid" title="Permalink to this headline">¶</a></h2>
|
||||
<table class="docutils align-default">
|
||||
<colgroup>
|
||||
<col style="width: 27%" />
|
||||
<col style="width: 11%" />
|
||||
<col style="width: 62%" />
|
||||
</colgroup>
|
||||
<table class="colwidths-auto docutils align-default">
|
||||
<thead>
|
||||
<tr class="row-odd"><th class="head"><p>Name</p></th>
|
||||
<th class="head"><p>Version</p></th>
|
||||
<th class="head"><p>Version tested</p></th>
|
||||
<th class="head"><p>Comments</p></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="../Components/Webclient.html">Evennia Webclient</a></p></td>
|
||||
<td><p>0.9</p></td>
|
||||
<tr class="row-even"><td><p><a class="reference internal" href="../Components/Webclient.html"><span class="doc std std-doc">Evennia Webclient</span></a></p></td>
|
||||
<td><p>1.0+</p></td>
|
||||
<td><p>Evennia-specific</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="http://tintin.sourceforge.net/">tintin++</a></p></td>
|
||||
|
|
@ -90,15 +85,21 @@ new <a class="reference external" href="https://github.com/evennia/evennia/issue
|
|||
<td><p>v3</p></td>
|
||||
<td><p><em>UNTESTED</em></p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://www.potatomushclient.com/">Potato</a></p></td>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://www.potatomushclient.com/">Potato</a>_</p></td>
|
||||
<td><p>2.0.0b16</p></td>
|
||||
<td><p>No MXP, MCCP support. Win 32bit does not understand
|
||||
“localhost”, must use <cite>127.0.0.1</cite>.</p></td>
|
||||
<td><p>No MXP, MCCP support. Win 32bit does not understand</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="https://www.mudlet.org/">Mudlet</a></p></td>
|
||||
<tr class="row-odd"><td><p></p></td>
|
||||
<td><p></p></td>
|
||||
<td><p>“localhost”, must use <code class="docutils literal notranslate"><span class="pre">127.0.0.1</span></code>.</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://www.mudlet.org/">Mudlet</a></p></td>
|
||||
<td><p>3.4+</p></td>
|
||||
<td><p>No known issues. Some older versions showed <> as html
|
||||
under MXP.</p></td>
|
||||
<td><p>No known issues. Some older versions showed <> as html</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p></p></td>
|
||||
<td><p></p></td>
|
||||
<td><p>under MXP.</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://archive.org/details/tucows_196173_SimpleMU_MU_Client">SimpleMU</a> (Win)</p></td>
|
||||
<td><p>full</p></td>
|
||||
|
|
@ -114,45 +115,63 @@ under MXP.</p></td>
|
|||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="http://www.beipmu.com/">BeipMU</a> (Win)</p></td>
|
||||
<td><p>3.0.255</p></td>
|
||||
<td><p>No MXP support. Best to enable “MUD prompt handling”, disable
|
||||
“Handle HTML tags”.</p></td>
|
||||
<td><p>No MXP support. Best to enable “MUD prompt handling”, disable</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://itunes.apple.com/us/app/mudrammer-a-modern-mud-client/id597157072">MudRammer</a> (IOS)</p></td>
|
||||
<tr class="row-even"><td><p></p></td>
|
||||
<td><p></p></td>
|
||||
<td><p>“Handle HTML tags”.</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="https://itunes.apple.com/us/app/mudrammer-a-modern-mud-client/id597157072">MudRammer</a> (IOS)</p></td>
|
||||
<td><p>1.8.7</p></td>
|
||||
<td><p>Bad Telnet Protocol compliance: displays spurious characters.</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="https://itunes.apple.com/us/app/mudmaster/id341160033">MUDMaster</a></p></td>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://itunes.apple.com/us/app/mudmaster/id341160033">MUDMaster</a></p></td>
|
||||
<td><p>1.3.1</p></td>
|
||||
<td><p><em>UNTESTED</em></p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://bt.happygoatstudios.com/">BlowTorch</a> (Andr)</p></td>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="https://bt.happygoatstudios.com/">BlowTorch</a> (Andr)</p></td>
|
||||
<td><p>1.1.3</p></td>
|
||||
<td><p>Telnet NOP displays as spurious character.</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="https://play.google.com/store/apps/details?id=com.crap.mukluk">Mukluk</a> (Andr)</p></td>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://play.google.com/store/apps/details?id=com.crap.mukluk">Mukluk</a> (Andr)</p></td>
|
||||
<td><p>2015.11.20</p></td>
|
||||
<td><p>Telnet NOP displays as spurious character. Has UTF-8/Emoji
|
||||
support.</p></td>
|
||||
<td><p>Telnet NOP displays as spurious character. Has UTF-8/Emoji</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p></p></td>
|
||||
<td><p></p></td>
|
||||
<td><p>support.</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://github.com/GNOME/gnome-mud">Gnome-MUD</a> (Unix)</p></td>
|
||||
<td><p>0.11.2</p></td>
|
||||
<td><p>Telnet handshake errors. First (only) attempt at logging in
|
||||
fails.</p></td>
|
||||
<td><p>Telnet handshake errors. First (only) attempt at logging in</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="https://spyrit.ierne.eu.org/">Spyrit</a></p></td>
|
||||
<tr class="row-odd"><td><p></p></td>
|
||||
<td><p></p></td>
|
||||
<td><p>fails.</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://spyrit.ierne.eu.org/">Spyrit</a></p></td>
|
||||
<td><p>0.4</p></td>
|
||||
<td><p>No MXP, OOB support.</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://jamochamud.org/">JamochaMUD</a></p></td>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="https://jamochamud.org/">JamochaMUD</a></p></td>
|
||||
<td><p>5.2</p></td>
|
||||
<td><p>Does not support ANSI within MXP text.</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="http://duckclient.com/">DuckClient</a> (Chrome)</p></td>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="http://duckclient.com/">DuckClient</a> (Chrome)</p></td>
|
||||
<td><p>4.2</p></td>
|
||||
<td><p>No MXP support. Displays Telnet Go-Ahead and
|
||||
WILL SUPPRESS-GO-AHEAD as ù character. Also seems to run
|
||||
the <cite>version</cite> command on connection, which will not work in
|
||||
<cite>MULTISESSION_MODES</cite> above 1.</p></td>
|
||||
<td><p>No MXP support. Displays Telnet Go-Ahead and</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p></p></td>
|
||||
<td><p></p></td>
|
||||
<td><p>WILL SUPPRESS-GO-AHEAD as ù character. Also seems to run</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p></p></td>
|
||||
<td><p></p></td>
|
||||
<td><p>the <code class="docutils literal notranslate"><span class="pre">version</span></code> command on connection, which will not work in</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p></p></td>
|
||||
<td><p></p></td>
|
||||
<td><p><code class="docutils literal notranslate"><span class="pre">MULTISESSION_MODES</span></code> above 1.</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://www.kildclient.org/">KildClient</a></p></td>
|
||||
<td><p>2.11.1</p></td>
|
||||
|
|
@ -203,7 +222,6 @@ parameter to disable it for that Evennia account permanently.</p></li>
|
|||
<p><h3><a href="../index.html">Table of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Client Support Grid</a><ul>
|
||||
<li><a class="reference internal" href="#legend">Legend:</a></li>
|
||||
<li><a class="reference internal" href="#client-grid">Client Grid</a></li>
|
||||
<li><a class="reference internal" href="#workarounds-for-client-issues">Workarounds for client issues:</a><ul>
|
||||
<li><a class="reference internal" href="#issue-telnet-nop-displays-as-spurious-character">Issue: Telnet NOP displays as spurious character.</a></li>
|
||||
|
|
@ -233,7 +251,7 @@ parameter to disable it for that Evennia account permanently.</p></li>
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Client-Support-Grid.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="evennia-game-index">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="evennia-game-index">
|
||||
<h1>Evennia Game Index<a class="headerlink" href="#evennia-game-index" title="Permalink to this headline">¶</a></h1>
|
||||
<p>The <a class="reference external" href="http://games.evennia.com">Evennia game index</a> is a list of games built or
|
||||
being built with Evennia. Anyone is allowed to add their game to the index</p>
|
||||
|
|
@ -52,7 +54,7 @@ already in the list - be nice!</p>
|
|||
<section id="connect-with-the-wizard">
|
||||
<h2>Connect with the wizard<a class="headerlink" href="#connect-with-the-wizard" title="Permalink to this headline">¶</a></h2>
|
||||
<p>From your game dir, run</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">connections</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia connections
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This will start the Evennia <em>Connection wizard</em>. From the menu, select to add
|
||||
|
|
@ -72,24 +74,7 @@ over-written.</p>
|
|||
<p>If you don’t want to use the wizard (maybe because you already have the client installed from an
|
||||
earlier version), you can also configure your index entry in your settings file
|
||||
(<code class="docutils literal notranslate"><span class="pre">mygame/server/conf/settings.py</span></code>). Add the following:</p>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">GAME_INDEX_ENABLED</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">GAME_INDEX_ENABLED</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
|
||||
<span class="n">GAME_INDEX_LISTING</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="c1"># required </span>
|
||||
|
|
@ -108,7 +93,7 @@ earlier version), you can also configure your index entry in your settings file
|
|||
<span class="c1"># 'game_name': 'MyGame', # set only if different than settings.SERVERNAME</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>Of these, the <code class="docutils literal notranslate"><span class="pre">game_status</span></code>, <code class="docutils literal notranslate"><span class="pre">short_description</span></code> and <code class="docutils literal notranslate"><span class="pre">listing_contact</span></code> are
|
||||
required. The <code class="docutils literal notranslate"><span class="pre">listing_contact</span></code> is not publicly visible and is only meant as a
|
||||
last resort if we need to get in touch with you over any listing issue/bug (so
|
||||
|
|
@ -176,7 +161,7 @@ if you are not ready for players yet.</p>
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Evennia-Game-Index.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="getting-started">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="getting-started">
|
||||
<h1>Getting Started<a class="headerlink" href="#getting-started" title="Permalink to this headline">¶</a></h1>
|
||||
<p>This will help you download, install and start Evennia for the first time.</p>
|
||||
<blockquote>
|
||||
|
|
@ -47,15 +49,15 @@ test out Evennia. Apart from downloading and updating you don’t even need an
|
|||
internet connection until you feel ready to share your game with the world.</p>
|
||||
</div></blockquote>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference external" href="Setup/Getting-Started#quick-start">Quick Start</a></p></li>
|
||||
<li><p><a class="reference external" href="Setup/Getting-Started#requirements">Requirements</a></p></li>
|
||||
<li><p><a class="reference external" href="Setup/Getting-Started#linux-install">Linux Install</a></p></li>
|
||||
<li><p><a class="reference external" href="Setup/Getting-Started#mac-install">Mac Install</a></p></li>
|
||||
<li><p><a class="reference external" href="Setup/Getting-Started#windows-install">Windows Install</a></p></li>
|
||||
<li><p><a class="reference internal" href="Running-Evennia-in-Docker.html"><span class="doc">Running in Docker</span></a></p></li>
|
||||
<li><p><a class="reference external" href="Setup/Getting-Started#where-to-go-next">Where to Go Next</a></p></li>
|
||||
<li><p><a class="reference external" href="Setup/Getting-Started#troubleshooting">Troubleshooting</a></p></li>
|
||||
<li><p><a class="reference internal" href="../Glossary.html"><span class="doc">Glossary of terms</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="#quick-start"><span class="std std-doc">Quick Start</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="#requirements"><span class="std std-doc">Requirements</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="#linux-install"><span class="std std-doc">Linux Install</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="#mac-install"><span class="std std-doc">Mac Install</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="#windows-install"><span class="std std-doc">Windows Install</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="Running-Evennia-in-Docker.html"><span class="doc std std-doc">Running in Docker</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="#where-to-go-next"><span class="std std-doc">Where to Go Next</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="#troubleshooting"><span class="std std-doc">Troubleshooting</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../Glossary.html"><span class="doc std std-doc">Glossary of terms</span></a></p></li>
|
||||
</ul>
|
||||
<section id="quick-start">
|
||||
<h2>Quick Start<a class="headerlink" href="#quick-start" title="Permalink to this headline">¶</a></h2>
|
||||
|
|
@ -77,7 +79,7 @@ Evennia should now be running and you can connect to it by pointing a web browse
|
|||
<code class="docutils literal notranslate"><span class="pre">http://localhost:4001</span></code> or a MUD telnet client to <code class="docutils literal notranslate"><span class="pre">localhost:4000</span></code> (use <code class="docutils literal notranslate"><span class="pre">127.0.0.1</span></code> if your OS does
|
||||
not recognize <code class="docutils literal notranslate"><span class="pre">localhost</span></code>).</p></li>
|
||||
</ol>
|
||||
<p>We also release <a class="reference internal" href="Running-Evennia-in-Docker.html"><span class="doc">Docker images</span></a>
|
||||
<p>We also release <a class="reference internal" href="Running-Evennia-in-Docker.html"><span class="doc std std-doc">Docker images</span></a>
|
||||
based on <code class="docutils literal notranslate"><span class="pre">master</span></code> and <code class="docutils literal notranslate"><span class="pre">develop</span></code> branches.</p>
|
||||
</section>
|
||||
<section id="requirements">
|
||||
|
|
@ -114,9 +116,9 @@ version is usually untested with Evennia)</p></li>
|
|||
<section id="linux-install">
|
||||
<h2>Linux Install<a class="headerlink" href="#linux-install" title="Permalink to this headline">¶</a></h2>
|
||||
<p>If you run into any issues during the installation and first start, please
|
||||
check out <a class="reference external" href="Setup/Getting-Started#linux-troubleshooting">Linux Troubleshooting</a>.</p>
|
||||
check out <a class="reference internal" href="#linux-troubleshooting"><span class="std std-doc">Linux Troubleshooting</span></a>.</p>
|
||||
<p>For Debian-derived systems (like Ubuntu, Mint etc), start a terminal and
|
||||
install the <a class="reference external" href="Setup/Getting-Started#requirements">dependencies</a>:</p>
|
||||
install the <a class="reference internal" href="#requirements"><span class="std std-doc">dependencies</span></a>:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">update</span>
|
||||
<span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">python3</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span> <span class="n">python3</span><span class="o">-</span><span class="n">dev</span> <span class="n">python3</span><span class="o">-</span><span class="n">setuptools</span> <span class="n">python3</span><span class="o">-</span><span class="n">git</span>
|
||||
<span class="n">python3</span><span class="o">-</span><span class="n">virtualenv</span> <span class="n">gcc</span>
|
||||
|
|
@ -124,6 +126,7 @@ install the <a class="reference external" href="Setup/Getting-Started#requiremen
|
|||
<span class="c1"># If you are using an Ubuntu version that defaults to Python3, like 18.04+, use this instead:</span>
|
||||
<span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">update</span>
|
||||
<span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">python3</span><span class="mf">.7</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span> <span class="n">python3</span><span class="mf">.7</span><span class="o">-</span><span class="n">dev</span> <span class="n">python3</span><span class="o">-</span><span class="n">setuptools</span> <span class="n">virtualenv</span> <span class="n">gcc</span>
|
||||
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Note that, the default Python version for your distribution may still not be Python3.7 after this.
|
||||
|
|
@ -143,8 +146,8 @@ development:</p>
|
|||
contains the source code though, it is not <em>installed</em> yet. To isolate the
|
||||
Evennia install and its dependencies from the rest of the system, it is good
|
||||
Python practice to install into a <em>virtualenv</em>. If you are unsure about what a
|
||||
virtualenv is and why it’s useful, see the <a class="reference external" href="Setup/Glossary#virtualenv">Glossary entry on
|
||||
virtualenv</a>.</p>
|
||||
virtualenv is and why it’s useful, see the <a class="reference internal" href="../Glossary.html#virtualenv"><span class="std std-doc">Glossary entry on
|
||||
virtualenv</span></a>.</p>
|
||||
<p>Run <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-V</span></code> to see which version of Python your system defaults to.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># If your Linux defaults to Python3.7+:</span>
|
||||
<span class="n">virtualenv</span> <span class="n">evenv</span>
|
||||
|
|
@ -175,8 +178,8 @@ folders) and run</p>
|
|||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">e</span> <span class="n">evennia</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>For more info about <code class="docutils literal notranslate"><span class="pre">pip</span></code>, see the <a class="reference external" href="Glossary.html#pip">Glossary entry on pip</a>. If
|
||||
install failed with any issues, see <a class="reference external" href="Setup/Getting-Started#linux-troubleshooting">Linux Troubleshooting</a>.</p>
|
||||
<p>For more info about <code class="docutils literal notranslate"><span class="pre">pip</span></code>, see the <a class="reference internal" href="../Glossary.html#pip"><span class="std std-doc">Glossary entry on pip</span></a>. If
|
||||
install failed with any issues, see <a class="reference internal" href="#linux-troubleshooting"><span class="std std-doc">Linux Troubleshooting</span></a>.</p>
|
||||
<p>Next we’ll start our new game, here called “mygame”. This will create yet
|
||||
another new folder where you will be creating your new game:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="o">--</span><span class="n">init</span> <span class="n">mygame</span>
|
||||
|
|
@ -189,8 +192,8 @@ another new folder where you will be creating your new game:</p>
|
|||
<span class="n">mygame</span><span class="o">/</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You can <a class="reference external" href="Components/Server-Conf.html#settings-file">configure Evennia</a> extensively, for example
|
||||
to use a <a class="reference internal" href="Choosing-An-SQL-Server.html"><span class="doc">different database</span></a>. For now we’ll just stick
|
||||
<p>You can <a class="reference internal" href="Server-Conf.html#settings-file"><span class="std std-doc">configure Evennia</span></a> extensively, for example
|
||||
to use a <a class="reference internal" href="Choosing-An-SQL-Server.html"><span class="doc std std-doc">different database</span></a>. For now we’ll just stick
|
||||
to the defaults though.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">mygame</span>
|
||||
<span class="n">evennia</span> <span class="n">migrate</span> <span class="c1"># (this creates the database)</span>
|
||||
|
|
@ -203,7 +206,7 @@ live in the terminal, use <code class="docutils literal notranslate"><span class
|
|||
</div></blockquote>
|
||||
<p>Your game should now be running! Open a web browser at <code class="docutils literal notranslate"><span class="pre">http://localhost:4001</span></code>
|
||||
or point a telnet client to <code class="docutils literal notranslate"><span class="pre">localhost:4000</span></code> and log in with the user you
|
||||
created. Check out <a class="reference external" href="Setup/Getting-Started#where-to-go-next">where to go next</a>.</p>
|
||||
created. Check out <a class="reference internal" href="#where-to-go-next"><span class="std std-doc">where to go next</span></a>.</p>
|
||||
</section>
|
||||
<section id="mac-install">
|
||||
<h2>Mac Install<a class="headerlink" href="#mac-install" title="Permalink to this headline">¶</a></h2>
|
||||
|
|
@ -211,7 +214,7 @@ created. Check out <a class="reference external" href="Setup/Getting-Started#whe
|
|||
<em>Applications->Utilities->Terminal</em>. <a class="reference external" href="https://blog.teamtreehouse.com/introduction-to-the-mac-os-x-command-line">Here is an introduction to the Mac
|
||||
terminal</a>
|
||||
if you are unsure how it works. If you run into any issues during the
|
||||
installation, please check out <a class="reference external" href="Setup/Getting-Started#mac-troubleshooting">Mac Troubleshooting</a>.</p>
|
||||
installation, please check out <a class="reference internal" href="#mac-troubleshooting"><span class="std std-doc">Mac Troubleshooting</span></a>.</p>
|
||||
<ul class="simple">
|
||||
<li><p>Python should already be installed but you must make sure it’s a high enough version.
|
||||
(<a class="reference external" href="https://docs.python-guide.org/en/latest/starting/install/osx/">This</a> discusses
|
||||
|
|
@ -237,7 +240,7 @@ install gcc and the Python headers.</p></li>
|
|||
contains the source code though, it is not <em>installed</em> yet. To isolate the
|
||||
Evennia install and its dependencies from the rest of the system, it is good
|
||||
Python practice to install into a <em>virtualenv</em>. If you are unsure about what a
|
||||
virtualenv is and why it’s useful, see the <a class="reference external" href="Glossary.html#virtualenv">Glossary entry on virtualenv</a>.</p>
|
||||
virtualenv is and why it’s useful, see the <a class="reference internal" href="../Glossary.html#virtualenv"><span class="std std-doc">Glossary entry on virtualenv</span></a>.</p>
|
||||
<p>Run <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-V</span></code> to check which Python your system defaults to.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># If your Mac defaults to Python3:</span>
|
||||
<span class="n">virtualenv</span> <span class="n">evenv</span>
|
||||
|
|
@ -267,8 +270,8 @@ folders) and run</p>
|
|||
<span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">e</span> <span class="n">evennia</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>For more info about <code class="docutils literal notranslate"><span class="pre">pip</span></code>, see the <a class="reference external" href="Glossary.html#pip">Glossary entry on pip</a>. If
|
||||
install failed with any issues, see <a class="reference external" href="Setup/Getting-Started#mac-troubleshooting">Mac Troubleshooting</a>.</p>
|
||||
<p>For more info about <code class="docutils literal notranslate"><span class="pre">pip</span></code>, see the <a class="reference internal" href="../Glossary.html#pip"><span class="std std-doc">Glossary entry on pip</span></a>. If
|
||||
install failed with any issues, see <a class="reference internal" href="#mac-troubleshooting"><span class="std std-doc">Mac Troubleshooting</span></a>.</p>
|
||||
<p>Next we’ll start our new game. We’ll call it “mygame” here. This creates a new
|
||||
folder where you will be creating your new game:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="o">--</span><span class="n">init</span> <span class="n">mygame</span>
|
||||
|
|
@ -281,8 +284,8 @@ folder where you will be creating your new game:</p>
|
|||
<span class="n">mygame</span><span class="o">/</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You can <a class="reference external" href="Components/Server-Conf.html#settings-file">configure Evennia</a> extensively, for example
|
||||
to use a <a class="reference internal" href="Choosing-An-SQL-Server.html"><span class="doc">different database</span></a>. We’ll go with the
|
||||
<p>You can <a class="reference internal" href="Server-Conf.html#settings-file"><span class="std std-doc">configure Evennia</span></a> extensively, for example
|
||||
to use a <a class="reference internal" href="Choosing-An-SQL-Server.html"><span class="doc std std-doc">different database</span></a>. We’ll go with the
|
||||
defaults here.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">mygame</span>
|
||||
<span class="n">evennia</span> <span class="n">migrate</span> <span class="c1"># (this creates the database)</span>
|
||||
|
|
@ -295,12 +298,12 @@ live in the terminal, use <code class="docutils literal notranslate"><span class
|
|||
</div></blockquote>
|
||||
<p>Your game should now be running! Open a web browser at <code class="docutils literal notranslate"><span class="pre">http://localhost:4001</span></code>
|
||||
or point a telnet client to <code class="docutils literal notranslate"><span class="pre">localhost:4000</span></code> and log in with the user you
|
||||
created. Check out <a class="reference external" href="Setup/Getting-Started#where-to-go-next">where to go next</a>.</p>
|
||||
created. Check out <a class="reference internal" href="#where-to-go-next"><span class="std std-doc">where to go next</span></a>.</p>
|
||||
</section>
|
||||
<section id="windows-install">
|
||||
<h2>Windows Install<a class="headerlink" href="#windows-install" title="Permalink to this headline">¶</a></h2>
|
||||
<p>If you run into any issues during the installation, please check out
|
||||
<a class="reference external" href="Setup/Getting-Started#windows-troubleshooting">Windows Troubleshooting</a>.</p>
|
||||
<a class="reference internal" href="#windows-troubleshooting"><span class="std std-doc">Windows Troubleshooting</span></a>.</p>
|
||||
<blockquote>
|
||||
<div><p>If you are running Windows10, consider using the Windows Subsystem for Linux
|
||||
(<a class="reference external" href="https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux">WSL</a>) instead.
|
||||
|
|
@ -352,7 +355,7 @@ directory change.</p>
|
|||
contains the source code though, it is not <em>installed</em> yet. To isolate the
|
||||
Evennia install and its dependencies from the rest of the system, it is good
|
||||
Python practice to install into a <em>virtualenv</em>. If you are unsure about what a
|
||||
virtualenv is and why it’s useful, see the <a class="reference external" href="Glossary.html#virtualenv">Glossary entry on virtualenv</a>.</p>
|
||||
virtualenv is and why it’s useful, see the <a class="reference internal" href="../Glossary.html#virtualenv"><span class="std std-doc">Glossary entry on virtualenv</span></a>.</p>
|
||||
<p>In your console, try <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-V</span></code> to see which version of Python your system
|
||||
defaults to.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="n">virtualenv</span>
|
||||
|
|
@ -365,6 +368,7 @@ defaults to.</p>
|
|||
|
||||
<span class="c1"># If you get an infinite spooling response, press CTRL + C to interrupt and try using:</span>
|
||||
<span class="n">python</span> <span class="o">-</span><span class="n">m</span> <span class="n">venv</span> <span class="n">evenv</span>
|
||||
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>A new folder <code class="docutils literal notranslate"><span class="pre">evenv</span></code> will appear (we could have called it anything). This
|
||||
|
|
@ -375,6 +379,7 @@ with default Python packages on your system. Activate the virtualenv:</p>
|
|||
|
||||
<span class="c1"># If you are using a PS Shell, Git Bash, or other, you can use the following:</span>
|
||||
<span class="o">.</span>\<span class="n">evenv</span>\<span class="n">scripts</span>\<span class="n">activate</span>
|
||||
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The text <code class="docutils literal notranslate"><span class="pre">(evenv)</span></code> should appear next to your prompt to show the virtual
|
||||
|
|
@ -390,8 +395,8 @@ folders when you use the <code class="docutils literal notranslate"><span class=
|
|||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">e</span> <span class="n">evennia</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>For more info about <code class="docutils literal notranslate"><span class="pre">pip</span></code>, see the <a class="reference external" href="Glossary.html#pip">Glossary entry on pip</a>. If
|
||||
the install failed with any issues, see [Windows Troubleshooting](Getting-Started#windows-
|
||||
<p>For more info about <code class="docutils literal notranslate"><span class="pre">pip</span></code>, see the <a class="reference internal" href="../Glossary.html#pip"><span class="std std-doc">Glossary entry on pip</span></a>. If
|
||||
the install failed with any issues, see [Windows Troubleshooting](#windows-
|
||||
troubleshooting).
|
||||
Next we’ll start our new game, we’ll call it “mygame” here. This creates a new folder where you will
|
||||
be
|
||||
|
|
@ -406,8 +411,8 @@ creating your new game:</p>
|
|||
<span class="n">mygame</span>\
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You can <a class="reference external" href="Components/Server-Conf.html#settings-file">configure Evennia</a> extensively, for example
|
||||
to use a <a class="reference internal" href="Choosing-An-SQL-Server.html"><span class="doc">different database</span></a>. We’ll go with the
|
||||
<p>You can <a class="reference internal" href="Server-Conf.html#settings-file"><span class="std std-doc">configure Evennia</span></a> extensively, for example
|
||||
to use a <a class="reference internal" href="Choosing-An-SQL-Server.html"><span class="doc std std-doc">different database</span></a>. We’ll go with the
|
||||
defaults here.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">mygame</span>
|
||||
<span class="n">evennia</span> <span class="n">migrate</span> <span class="c1"># (this creates the database)</span>
|
||||
|
|
@ -420,7 +425,7 @@ live in the terminal, use <code class="docutils literal notranslate"><span class
|
|||
</div></blockquote>
|
||||
<p>Your game should now be running! Open a web browser at <code class="docutils literal notranslate"><span class="pre">http://localhost:4001</span></code>
|
||||
or point a telnet client to <code class="docutils literal notranslate"><span class="pre">localhost:4000</span></code> and log in with the user you
|
||||
created. Check out <a class="reference external" href="Setup/Getting-Started#where-to-go-next">where to go next</a>.</p>
|
||||
created. Check out <a class="reference internal" href="#where-to-go-next"><span class="std std-doc">where to go next</span></a>.</p>
|
||||
</section>
|
||||
<section id="non-interactive-setup">
|
||||
<h2>Non-interactive setup<a class="headerlink" href="#non-interactive-setup" title="Permalink to this headline">¶</a></h2>
|
||||
|
|
@ -432,6 +437,7 @@ values as environment variables, <code class="docutils literal notranslate"><spa
|
|||
empty string.</p>
|
||||
<p>Use this to start Evennia (the envvars will be ignored on subsequent starts):</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">EVENNIA_SUPERUSER_USERNAME</span><span class="o">=</span><span class="n">Foo</span> <span class="n">EVENNIA_SUPERUSER_PASSWORD</span><span class="o">=</span><span class="n">MygreatPwd</span> <span class="n">evennia</span> <span class="n">start</span>
|
||||
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -439,19 +445,19 @@ empty string.</p>
|
|||
<h2>Where to Go Next<a class="headerlink" href="#where-to-go-next" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Welcome to Evennia! Your new game is fully functioning, but empty. If you just
|
||||
logged in, stand in the <code class="docutils literal notranslate"><span class="pre">Limbo</span></code> room and run</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@batchcommand</span> <span class="n">tutorial_world</span><span class="o">.</span><span class="n">build</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>@batchcommand tutorial_world.build
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>to build <a class="reference internal" href="../Howto/Starting/Part1/Tutorial-World-Introduction.html"><span class="doc">Evennia’s tutorial world</span></a> - it’s a small solo quest to
|
||||
<p>to build <a class="reference internal" href="../Howto/Starting/Part1/Tutorial-World-Introduction.html"><span class="doc std std-doc">Evennia’s tutorial world</span></a> - it’s a small solo quest to
|
||||
explore. Only run the instructed <code class="docutils literal notranslate"><span class="pre">@batchcommand</span></code> once. You’ll get a lot of text scrolling by as the
|
||||
tutorial is built. Once done, the <code class="docutils literal notranslate"><span class="pre">tutorial</span></code> exit will have appeared out of Limbo - just write
|
||||
<code class="docutils literal notranslate"><span class="pre">tutorial</span></code> to enter it.</p>
|
||||
<p>Once you get back to <code class="docutils literal notranslate"><span class="pre">Limbo</span></code> from the tutorial (if you get stuck in the tutorial quest you can do
|
||||
<code class="docutils literal notranslate"><span class="pre">@tel</span> <span class="pre">#2</span></code> to jump to Limbo), a good idea is to learn how to [start, stop and reload](Start-Stop-
|
||||
Reload) the Evennia server. You may also want to familiarize yourself with some
|
||||
<a class="reference internal" href="../Glossary.html"><span class="doc">commonly used terms in our Glossary</span></a>. After that, why not experiment with
|
||||
<a class="reference internal" href="../Howto/Starting/Part1/Building-Quickstart.html"><span class="doc">creating some new items and build some new rooms</span></a> out from Limbo.</p>
|
||||
<p>From here on, you could move on to do one of our <a class="reference internal" href="../Howto/Howto-Overview.html"><span class="doc">introductory tutorials</span></a> or simply dive
|
||||
<a class="reference internal" href="../Glossary.html"><span class="doc std std-doc">commonly used terms in our Glossary</span></a>. After that, why not experiment with
|
||||
<a class="reference internal" href="../Howto/Starting/Part1/Building-Quickstart.html"><span class="doc std std-doc">creating some new items and build some new rooms</span></a> out from Limbo.</p>
|
||||
<p>From here on, you could move on to do one of our <a class="reference internal" href="../Howto/Howto-Overview.html"><span class="doc std std-doc">introductory tutorials</span></a> or simply dive
|
||||
headlong into Evennia’s comprehensive <a class="reference external" href="https://github.com/evennia/evennia/wiki">manual</a>. While
|
||||
Evennia has no major game systems out of the box, we do supply a range of optional <em>contribs</em> that
|
||||
you can use or borrow from. They range from dice rolling and alternative color schemes to barter and
|
||||
|
|
@ -463,7 +469,7 @@ chat</a>
|
|||
forums</a>. You can also join the <a class="reference external" href="https://discord.gg/NecFePw">Discord
|
||||
Server</a>.</p>
|
||||
<p>Finally, if you are itching to help out or support Evennia (awesome!) have an
|
||||
issue to report or a feature to request, <a class="reference internal" href="../How-To-Get-And-Give-Help.html"><span class="doc">see here</span></a>.</p>
|
||||
issue to report or a feature to request, <a class="reference internal" href="../How-To-Get-And-Give-Help.html"><span class="doc std std-doc">see here</span></a>.</p>
|
||||
<p>Enjoy your stay!</p>
|
||||
</section>
|
||||
<section id="troubleshooting">
|
||||
|
|
@ -599,7 +605,7 @@ virus software interfering. Try disabling or changing your anti-virus software s
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Extended-Installation.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="grapevine">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="grapevine">
|
||||
<h1>Grapevine<a class="headerlink" href="#grapevine" title="Permalink to this headline">¶</a></h1>
|
||||
<p><a class="reference external" href="https://grapevine.haus">Grapevine</a> is a new chat network for <code class="docutils literal notranslate"><span class="pre">MU*</span></code>*** games. By
|
||||
connecting an in-game channel to the grapevine network, players on your game
|
||||
|
|
@ -47,29 +49,28 @@ can chat with players in other games, also non-Evennia ones.</p>
|
|||
<h2>Configuring Grapevine<a class="headerlink" href="#configuring-grapevine" title="Permalink to this headline">¶</a></h2>
|
||||
<p>To use Grapevine, you first need the <code class="docutils literal notranslate"><span class="pre">pyopenssl</span></code> module. Install it into your
|
||||
Evennia python environment with</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="n">pyopenssl</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>pip install pyopenssl
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To configure Grapevine, you’ll need to activate it in your settings file.</p>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="n">GRAPEVINE_ENABLED</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span> <span class="n">GRAPEVINE_ENABLED</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
<p>Next, register an account at https://grapevine.haus. When you have logged in,
|
||||
</div>
|
||||
<p>Next, register an account at <a class="reference external" href="https://grapevine.haus">https://grapevine.haus</a>. When you have logged in,
|
||||
go to your Settings/Profile and to the <code class="docutils literal notranslate"><span class="pre">Games</span></code> sub menu. Here you register your
|
||||
new game by filling in its information. At the end of registration you are going
|
||||
to get a <code class="docutils literal notranslate"><span class="pre">Client</span> <span class="pre">ID</span></code> and a <code class="docutils literal notranslate"><span class="pre">Client</span> <span class="pre">Secret</span></code>. These should not be shared.</p>
|
||||
<p>Open/create the file <code class="docutils literal notranslate"><span class="pre">mygame/server/conf/secret_settings.py</span></code> and add the following:</p>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||||
<span class="normal">2</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="n">GRAPEVINE_CLIENT_ID</span> <span class="o">=</span> <span class="s2">"<client ID>"</span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span> <span class="n">GRAPEVINE_CLIENT_ID</span> <span class="o">=</span> <span class="s2">"<client ID>"</span>
|
||||
<span class="n">GRAPEVINE_CLIENT_SECRET</span> <span class="o">=</span> <span class="s2">"<client_secret>"</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>You can also customize the Grapevine channels you are allowed to connect to. This
|
||||
is added to the <code class="docutils literal notranslate"><span class="pre">GRAPEVINE_CHANNELS</span></code> setting. You can see which channels are available
|
||||
by going to the Grapevine online chat here: https://grapevine.haus/chat.</p>
|
||||
by going to the Grapevine online chat here: <a class="reference external" href="https://grapevine.haus/chat">https://grapevine.haus/chat</a>.</p>
|
||||
<p>Start/reload Evennia and log in as a privileged user. You should now have a new
|
||||
command available: <code class="docutils literal notranslate"><span class="pre">@grapevine2chan</span></code>. This command is called like this:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="nd">@grapevine2chan</span><span class="p">[</span><span class="o">/</span><span class="n">switches</span><span class="p">]</span> <span class="o"><</span><span class="n">evennia_channel</span><span class="o">></span> <span class="o">=</span> <span class="o"><</span><span class="n">grapevine_channel</span><span class="o">></span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> @grapevine2chan[/switches] <evennia_channel> = <grapevine_channel>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Here, the <code class="docutils literal notranslate"><span class="pre">evennia_channel</span></code> must be the name of an existing Evennia channel and
|
||||
|
|
@ -85,16 +86,16 @@ command available: <code class="docutils literal notranslate"><span class="pre">
|
|||
<p>You can connect Grapevine to any Evennia channel (so you could connect it to
|
||||
the default <em>public</em> channel if you like), but for testing, let’s set up a
|
||||
new channel <code class="docutils literal notranslate"><span class="pre">gw</span></code>.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> @ccreate gw = This is connected to an gw channel!
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> @ccreate gw = This is connected to an gw channel!
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You will automatically join the new channel.</p>
|
||||
<p>Next we will create a connection to the Grapevine network.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="nd">@grapevine2chan</span> <span class="n">gw</span> <span class="o">=</span> <span class="n">gossip</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> @grapevine2chan gw = gossip
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Evennia will now create a new connection and connect it to Grapevine. Connect
|
||||
to https://grapevine.haus/chat to check.</p>
|
||||
to <a class="reference external" href="https://grapevine.haus/chat">https://grapevine.haus/chat</a> to check.</p>
|
||||
<p>Write something in the Evennia channel <em>gw</em> and check so a message appears in
|
||||
the Grapevine chat. Write a reply in the chat and the grapevine bot should echo
|
||||
it to your channel in-game.</p>
|
||||
|
|
@ -151,7 +152,7 @@ it to your channel in-game.</p>
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Grapevine.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="making-evennia-https-and-wss-secure-websockets-play-nicely-together">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="making-evennia-https-and-wss-secure-websockets-play-nicely-together">
|
||||
<h1>Making Evennia, HTTPS and WSS (Secure Websockets) play nicely together<a class="headerlink" href="#making-evennia-https-and-wss-secure-websockets-play-nicely-together" title="Permalink to this headline">¶</a></h1>
|
||||
<p>A modern public-facing website should these days be served via encrypted
|
||||
connections. So <code class="docutils literal notranslate"><span class="pre">https:</span></code> rather than <code class="docutils literal notranslate"><span class="pre">http:</span></code> for the website and
|
||||
|
|
@ -54,17 +56,17 @@ practices.</p>
|
|||
your server. Essentially, Evennia will think it’s only running locally (on
|
||||
localhost, IP 127.0.0.1) while the proxy will transparently map that to the
|
||||
“real” outgoing ports and handle HTTPS/WSS for us.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">Evennia</span>
|
||||
<span class="o">|</span>
|
||||
<span class="p">(</span><span class="n">inside</span><span class="o">-</span><span class="n">only</span> <span class="n">local</span> <span class="n">IP</span><span class="o">/</span><span class="n">ports</span> <span class="n">serving</span> <span class="n">HTTP</span><span class="o">/</span><span class="n">WS</span><span class="p">)</span>
|
||||
<span class="o">|</span>
|
||||
<span class="n">Proxy</span>
|
||||
<span class="o">|</span>
|
||||
<span class="p">(</span><span class="n">outside</span><span class="o">-</span><span class="n">visible</span> <span class="n">public</span> <span class="n">IP</span><span class="o">/</span><span class="n">ports</span> <span class="n">serving</span> <span class="n">HTTPS</span><span class="o">/</span><span class="n">WSS</span><span class="p">)</span>
|
||||
<span class="o">|</span>
|
||||
<span class="n">Firewall</span>
|
||||
<span class="o">|</span>
|
||||
<span class="n">Internet</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> Evennia
|
||||
|
|
||||
(inside-only local IP/ports serving HTTP/WS)
|
||||
|
|
||||
Proxy
|
||||
|
|
||||
(outside-visible public IP/ports serving HTTPS/WSS)
|
||||
|
|
||||
Firewall
|
||||
|
|
||||
Internet
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>These instructions assume you run a server with Unix/Linux (very common if you
|
||||
|
|
@ -102,18 +104,17 @@ previously).</p></li>
|
|||
<li><p>Open port 4002 in firewall (we’ll use the same number for both internal-
|
||||
and external ports, the proxy will only show the safe one serving wss).</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="getting-certificates">
|
||||
<h1>Getting certificates<a class="headerlink" href="#getting-certificates" title="Permalink to this headline">¶</a></h1>
|
||||
<h2>Getting certificates<a class="headerlink" href="#getting-certificates" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Certificates guarantee that you are you. Easiest is to get this with
|
||||
<a class="reference external" href="https://letsencrypt.org/getting-started/">Letsencrypt</a> and the
|
||||
<a class="reference external" href="https://certbot.eff.org/instructions">Certbot</a> program. Certbot has a lot of
|
||||
install instructions for various operating systems. Here’s for Debian/Ubuntu:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span> <span class="n">install</span> <span class="n">certbot</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo apt install certbot
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Make sure to stop Evennia and that no port-80 using service is running, then</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">certbot</span> <span class="n">certonly</span> <span class="o">--</span><span class="n">standalone</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo certbot certonly --standalone
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You will get some questions you need to answer, such as an email to send
|
||||
|
|
@ -124,6 +125,7 @@ critical files for our purposes are <code class="docutils literal notranslate"><
|
|||
<p>Certbot sets up a cron-job/systemd job to regularly renew the certificate. To
|
||||
check this works, try</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">certbot</span> <span class="n">renew</span> <span class="o">--</span><span class="n">dry</span><span class="o">-</span><span class="n">run</span>
|
||||
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The certificate is only valid for 3 months at a time, so make sure this test
|
||||
|
|
@ -138,9 +140,9 @@ lines are needed.</p></li>
|
|||
</ol>
|
||||
<p>We could do this by copy&pasting in a text editor, but here’s how to do it with
|
||||
shell commands (replace the example paths with your own):</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">letsencrypt</span><span class="o">/</span><span class="n">live</span><span class="o">/</span><span class="n">my</span><span class="o">.</span><span class="n">awesomegame</span><span class="o">.</span><span class="n">com</span><span class="o">/</span>
|
||||
<span class="n">sudo</span> <span class="n">cp</span> <span class="n">privkey</span><span class="o">.</span><span class="n">pem</span> <span class="n">my</span><span class="o">.</span><span class="n">awesomegame</span><span class="o">.</span><span class="n">com</span><span class="o">.</span><span class="n">pem</span>
|
||||
<span class="n">sudo</span> <span class="n">cat</span> <span class="n">fullchain</span><span class="o">.</span><span class="n">pem</span> <span class="o">>></span> <span class="n">my</span><span class="o">.</span><span class="n">awesomegame</span><span class="o">.</span><span class="n">com</span><span class="o">.</span><span class="n">pem</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>cd /etc/letsencrypt/live/my.awesomegame.com/
|
||||
sudo cp privkey.pem my.awesomegame.com.pem
|
||||
sudo cat fullchain.pem >> my.awesomegame.com.pem
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The new <code class="docutils literal notranslate"><span class="pre">my.awesomegame.com.pem</span></code> file (or whatever you named it) is what we will
|
||||
|
|
@ -151,14 +153,14 @@ But HAProxy will not see this because it is looking at the combined file that
|
|||
will still have the old <code class="docutils literal notranslate"><span class="pre">fullchain.pem</span></code> appended to it.</p>
|
||||
<p>We’ll set up an automated task to rebuild the <code class="docutils literal notranslate"><span class="pre">.pem</span></code> file regularly by
|
||||
using the <code class="docutils literal notranslate"><span class="pre">cron</span></code> program of Unix/Linux.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">crontab</span> <span class="o">-</span><span class="n">e</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>crontab -e
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>An editor will open to the crontab file. Add the following at the bottom (all
|
||||
on one line, and change the paths to your own!):</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">0</span> <span class="mi">5</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="n">cd</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">letsencrypt</span><span class="o">/</span><span class="n">live</span><span class="o">/</span><span class="n">my</span><span class="o">.</span><span class="n">awesomegame</span><span class="o">.</span><span class="n">com</span><span class="o">/</span> <span class="o">&&</span>
|
||||
<span class="n">cp</span> <span class="n">privkey</span><span class="o">.</span><span class="n">pem</span> <span class="n">my</span><span class="o">.</span><span class="n">awesomegame</span><span class="o">.</span><span class="n">com</span><span class="o">.</span><span class="n">pem</span> <span class="o">&&</span>
|
||||
<span class="n">cat</span> <span class="n">fullchain</span><span class="o">.</span><span class="n">pem</span> <span class="o">>></span> <span class="n">my</span><span class="o">.</span><span class="n">awesomegame</span><span class="o">.</span><span class="n">com</span><span class="o">.</span><span class="n">pem</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>0 5 * * * cd /etc/letsencrypt/live/my.awesomegame.com/ &&
|
||||
cp privkey.pem my.awesomegame.com.pem &&
|
||||
cat fullchain.pem >> my.awesomegame.com.pem
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Save and close the editor. Every night at 05:00 (5 AM), the
|
||||
|
|
@ -167,13 +169,13 @@ the <code class="docutils literal notranslate"><span class="pre">fullchain.pem</
|
|||
be enough time to make sure HaProxy never sees an outdated certificate.</p>
|
||||
</section>
|
||||
<section id="installing-and-configuring-haproxy">
|
||||
<h1>Installing and configuring HAProxy<a class="headerlink" href="#installing-and-configuring-haproxy" title="Permalink to this headline">¶</a></h1>
|
||||
<h2>Installing and configuring HAProxy<a class="headerlink" href="#installing-and-configuring-haproxy" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Installing HaProxy is usually as simple as:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Debian derivatives (Ubuntu, Mint etc)</span>
|
||||
<span class="n">sudo</span> <span class="n">apt</span> <span class="n">install</span> <span class="n">haproxy</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span># Debian derivatives (Ubuntu, Mint etc)
|
||||
sudo apt install haproxy
|
||||
|
||||
<span class="c1"># Redhat derivatives (dnf instead of yum for very recent Fedora distros)</span>
|
||||
<span class="n">sudo</span> <span class="n">yum</span> <span class="n">install</span> <span class="n">haproxy</span>
|
||||
# Redhat derivatives (dnf instead of yum for very recent Fedora distros)
|
||||
sudo yum install haproxy
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Configuration of HAProxy is done in a single file. This can be located wherever
|
||||
|
|
@ -187,33 +189,7 @@ put in your own values.</p>
|
|||
<li><p><code class="docutils literal notranslate"><span class="pre">4002</span></code> is the default Evennia websocket port (we use the same number for
|
||||
the outgoing wss port, so this should be open in firewall).</p></li>
|
||||
</ul>
|
||||
<div class="highlight-shell notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="c1"># base stuff to set up haproxy</span>
|
||||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="c1"># base stuff to set up haproxy</span>
|
||||
global
|
||||
log /dev/log local0
|
||||
chroot /var/lib/haproxy
|
||||
|
|
@ -241,25 +217,26 @@ listen evennia-secure-websocket
|
|||
timeout server 10m
|
||||
timeout connect 5m
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="putting-it-all-together">
|
||||
<h1>Putting it all together<a class="headerlink" href="#putting-it-all-together" title="Permalink to this headline">¶</a></h1>
|
||||
<h2>Putting it all together<a class="headerlink" href="#putting-it-all-together" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Get back to the Evennia game dir and edit mygame/server/conf/settings.py. Add:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">WEBSERVER_INTERFACES</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'127.0.0.1'</span><span class="p">]</span>
|
||||
<span class="n">WEBSOCKET_CLIENT_INTERFACE</span> <span class="o">=</span> <span class="s1">'127.0.0.1'</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>WEBSERVER_INTERFACES = ['127.0.0.1']
|
||||
WEBSOCKET_CLIENT_INTERFACE = '127.0.0.1'
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>and</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">WEBSOCKET_CLIENT_URL</span><span class="o">=</span><span class="s2">"wss://my.awesomegame.com:4002/"</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>WEBSOCKET_CLIENT_URL="wss://my.awesomegame.com:4002/"
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Make sure to reboot (stop + start) evennia completely:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">reboot</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia reboot
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Finally you start the proxy:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">haproxy</span> <span class="o">-</span><span class="n">f</span> <span class="o">/</span><span class="n">path</span><span class="o">/</span><span class="n">to</span><span class="o">/</span><span class="n">the</span><span class="o">/</span><span class="n">above</span><span class="o">/</span><span class="n">haproxy</span><span class="o">.</span><span class="n">cfg</span>
|
||||
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Make sure you can connect to your game from your browser and that you end up
|
||||
|
|
@ -268,26 +245,27 @@ with an <code class="docutils literal notranslate"><span class="pre">https://</s
|
|||
background. Stop the proxy with <code class="docutils literal notranslate"><span class="pre">Ctrl-C</span></code> and make sure to uncomment the line <code class="docutils literal notranslate"><span class="pre">#</span> <span class="pre">daemon</span></code> in the config file.</p>
|
||||
<p>If you have no other proxies running on your server, you can copy your
|
||||
haproxy.conf file to the system-wide settings:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">cp</span> <span class="o">/</span><span class="n">path</span><span class="o">/</span><span class="n">to</span><span class="o">/</span><span class="n">the</span><span class="o">/</span><span class="n">above</span><span class="o">/</span><span class="n">haproxy</span><span class="o">.</span><span class="n">cfg</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">haproxy</span><span class="o">/</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo cp /path/to/the/above/haproxy.cfg /etc/haproxy/
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The proxy will now start on reload and you can control it with</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">service</span> <span class="n">haproxy</span> <span class="n">start</span><span class="o">|</span><span class="n">stop</span><span class="o">|</span><span class="n">restart</span><span class="o">|</span><span class="n">status</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo service haproxy start|stop|restart|status
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>If you don’t want to copy stuff into <code class="docutils literal notranslate"><span class="pre">/etc/</span></code> you can also run the haproxy purely
|
||||
out of your current location by running it with <code class="docutils literal notranslate"><span class="pre">cron</span></code> on server restart. Open
|
||||
the crontab again:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">crontab</span> <span class="o">-</span><span class="n">e</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo crontab -e
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Add a new line to the end of the file:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@reboot</span> <span class="n">haproxy</span> <span class="o">-</span><span class="n">f</span> <span class="o">/</span><span class="n">path</span><span class="o">/</span><span class="n">to</span><span class="o">/</span><span class="n">the</span><span class="o">/</span><span class="n">above</span><span class="o">/</span><span class="n">haproxy</span><span class="o">.</span><span class="n">cfg</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>@reboot haproxy -f /path/to/the/above/haproxy.cfg
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Save the file and haproxy should start up automatically when you reboot the
|
||||
server. Next just restart the proxy manually a last time - with <code class="docutils literal notranslate"><span class="pre">daemon</span></code>
|
||||
uncommented in the config file, it will now start as a background process.</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
|
|
@ -312,10 +290,12 @@ uncommented in the config file, it will now start as a background process.</p>
|
|||
<script>$('#searchbox').show(0);</script>
|
||||
<p><h3><a href="../index.html">Table of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Making Evennia, HTTPS and WSS (Secure Websockets) play nicely together</a></li>
|
||||
<li><a class="reference internal" href="#">Making Evennia, HTTPS and WSS (Secure Websockets) play nicely together</a><ul>
|
||||
<li><a class="reference internal" href="#getting-certificates">Getting certificates</a></li>
|
||||
<li><a class="reference internal" href="#installing-and-configuring-haproxy">Installing and configuring HAProxy</a></li>
|
||||
<li><a class="reference internal" href="#putting-it-all-together">Putting it all together</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div role="note" aria-label="source link">
|
||||
|
|
@ -338,7 +318,7 @@ uncommented in the config file, it will now start as a background process.</p>
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="HAProxy-Config.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="how-to-connect-evennia-to-twitter">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="how-to-connect-evennia-to-twitter">
|
||||
<h1>How to connect Evennia to Twitter<a class="headerlink" href="#how-to-connect-evennia-to-twitter" title="Permalink to this headline">¶</a></h1>
|
||||
<p><a class="reference external" href="https://en.wikipedia.org/wiki/twitter">Twitter</a> is an online social networking service that enables
|
||||
users to send and read short 280-character messages called “tweets”. Following is a short tutorial
|
||||
|
|
@ -64,56 +66,13 @@ it.</p>
|
|||
<section id="a-basic-tweet-command">
|
||||
<h2>A basic tweet command<a class="headerlink" href="#a-basic-tweet-command" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Evennia doesn’t have a <code class="docutils literal notranslate"><span class="pre">tweet</span></code> command out of the box so you need to write your own little
|
||||
<a class="reference internal" href="../Components/Commands.html"><span class="doc">Command</span></a> in order to tweet. If you are unsure about how commands work and how to add
|
||||
them, it can be an idea to go through the <a class="reference internal" href="../Howto/Starting/Part1/Adding-Commands.html"><span class="doc">Adding a Command Tutorial</span></a>
|
||||
<a class="reference internal" href="../Components/Commands.html"><span class="doc std std-doc">Command</span></a> in order to tweet. If you are unsure about how commands work and how to add
|
||||
them, it can be an idea to go through the <a class="reference internal" href="../Howto/Starting/Part1/Adding-Commands.html"><span class="doc std std-doc">Adding a Command Tutorial</span></a>
|
||||
before continuing.</p>
|
||||
<p>You can create the command in a separate command module (something like <code class="docutils literal notranslate"><span class="pre">mygame/commands/tweet.py</span></code>)
|
||||
or together with your other custom commands, as you prefer.</p>
|
||||
<p>This is how it can look:</p>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">twitter</span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">twitter</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia</span> <span class="kn">import</span> <span class="n">Command</span>
|
||||
|
||||
<span class="c1"># here you insert your unique App tokens</span>
|
||||
|
|
@ -158,10 +117,10 @@ or together with your other custom commands, as you prefer.</p>
|
|||
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"You tweeted:</span><span class="se">\n</span><span class="si">{</span><span class="n">tweet</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>Be sure to substitute your own actual API/Access keys and secrets in the appropriate places.</p>
|
||||
<p>We default to limiting tweet access to players with <code class="docutils literal notranslate"><span class="pre">Developers</span></code>-level access <em>or</em> to those players
|
||||
that have the permission “tweet” (allow individual characters to tweet with <code class="docutils literal notranslate"><span class="pre">@perm/player</span> <span class="pre">playername</span> <span class="pre">=</span> <span class="pre">tweet</span></code>). You may change the <a class="reference internal" href="../Components/Locks.html"><span class="doc">lock</span></a> as you feel is appropriate. Change the overall
|
||||
that have the permission “tweet” (allow individual characters to tweet with <code class="docutils literal notranslate"><span class="pre">@perm/player</span> <span class="pre">playername</span> <span class="pre">=</span> <span class="pre">tweet</span></code>). You may change the <a class="reference internal" href="../Components/Locks.html"><span class="doc std std-doc">lock</span></a> as you feel is appropriate. Change the overall
|
||||
permission to <code class="docutils literal notranslate"><span class="pre">Players</span></code> if you want everyone to be able to tweet.</p>
|
||||
<p>Now add this command to your default command set (e.g in <code class="docutils literal notranslate"><span class="pre">mygame/commands/defalt_cmdsets.py</span></code>”) and
|
||||
reload the server. From now on those with access can simply use <code class="docutils literal notranslate"><span class="pre">tweet</span> <span class="pre"><message></span></code> to see the tweet
|
||||
|
|
@ -177,7 +136,7 @@ posted from the game’s Twitter account.</p>
|
|||
<li><p>Echo your tweets to an in-game channel</p></li>
|
||||
</ul>
|
||||
<p>Rather than using an explicit command you can set up a Script to send automatic tweets, for example
|
||||
to post updated game stats. See the <a class="reference internal" href="../Howto/Tutorial-Tweeting-Game-Stats.html"><span class="doc">Tweeting Game Stats tutorial</span></a> for
|
||||
to post updated game stats. See the <a class="reference internal" href="../Howto/Tutorial-Tweeting-Game-Stats.html"><span class="doc std std-doc">Tweeting Game Stats tutorial</span></a> for
|
||||
help.</p>
|
||||
</section>
|
||||
</section>
|
||||
|
|
@ -233,7 +192,7 @@ help.</p>
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="How-to-connect-Evennia-to-Twitter.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,14 +40,14 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="irc">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="irc">
|
||||
<h1>IRC<a class="headerlink" href="#irc" title="Permalink to this headline">¶</a></h1>
|
||||
<p><em>Disambiguation: This page is related to using IRC inside an Evennia game. To join the official
|
||||
Evennia IRC chat, connect to irc.freenode.net and join #evennia. Alternatively, you can <a class="reference external" href="https://discord.gg/NecFePw">join our
|
||||
Evennia IRC chat, connect to <a class="reference external" href="http://irc.freenode.net">irc.freenode.net</a> and join #evennia. Alternatively, you can <a class="reference external" href="https://discord.gg/NecFePw">join our
|
||||
Discord</a>, which is mirrored to IRC.</em></p>
|
||||
<p><a class="reference external" href="https://en.wikipedia.org/wiki/Internet_Relay_Chat">IRC (Internet Relay Chat)</a> is a long standing
|
||||
chat protocol used by many open-source projects for communicating in real time. By connecting one of
|
||||
Evennia’s <a class="reference internal" href="../Components/Communications.html"><span class="doc">Channels</span></a> to an IRC channel you can communicate also with people not on
|
||||
Evennia’s <a class="reference internal" href="../Components/Communications.html"><span class="doc std std-doc">Channels</span></a> to an IRC channel you can communicate also with people not on
|
||||
an mud themselves. You can also use IRC if you are only running your Evennia MUD locally on your
|
||||
computer (your game doesn’t need to be open to the public)! All you need is an internet connection.
|
||||
For IRC operation you also need <a class="reference external" href="https://twistedmatrix.com/trac/wiki/TwistedWords">twisted.words</a>.
|
||||
|
|
@ -54,12 +56,12 @@ downloadable from the link.</p>
|
|||
<section id="configuring-irc">
|
||||
<h2>Configuring IRC<a class="headerlink" href="#configuring-irc" title="Permalink to this headline">¶</a></h2>
|
||||
<p>To configure IRC, you’ll need to activate it in your settings file.</p>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="n">IRC_ENABLED</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span> <span class="n">IRC_ENABLED</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>Start Evennia and log in as a privileged user. You should now have a new command available:
|
||||
<code class="docutils literal notranslate"><span class="pre">@irc2chan</span></code>. This command is called like this:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="nd">@irc2chan</span><span class="p">[</span><span class="o">/</span><span class="n">switches</span><span class="p">]</span> <span class="o"><</span><span class="n">evennia_channel</span><span class="o">></span> <span class="o">=</span> <span class="o"><</span><span class="n">ircnetwork</span><span class="o">></span> <span class="o"><</span><span class="n">port</span><span class="o">></span> <span class="o"><</span><span class="c1">#irchannel> <botname></span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> @irc2chan[/switches] <evennia_channel> = <ircnetwork> <port> <#irchannel> <botname>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>If you already know how IRC works, this should be pretty self-evident to use. Read the help entry
|
||||
|
|
@ -69,7 +71,7 @@ for more features.</p>
|
|||
<h2>Setting up IRC, step by step<a class="headerlink" href="#setting-up-irc-step-by-step" title="Permalink to this headline">¶</a></h2>
|
||||
<p>You can connect IRC to any Evennia channel (so you could connect it to the default <em>public</em> channel
|
||||
if you like), but for testing, let’s set up a new channel <code class="docutils literal notranslate"><span class="pre">irc</span></code>.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> @ccreate irc = This is connected to an irc channel!
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> @ccreate irc = This is connected to an irc channel!
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You will automatically join the new channel.</p>
|
||||
|
|
@ -96,24 +98,24 @@ third-party IRC client. There are hundreds of such clients available. If you use
|
|||
have connected to a network, the command to join is usually <code class="docutils literal notranslate"><span class="pre">/join</span> <span class="pre">#channelname</span></code> (don’t forget the
|
||||
#).</p>
|
||||
<p>Next we connect Evennia with the IRC channel.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="nd">@irc2chan</span> <span class="n">irc</span> <span class="o">=</span> <span class="n">irc</span><span class="o">.</span><span class="n">freenode</span><span class="o">.</span><span class="n">net</span> <span class="mi">6667</span> <span class="c1">#myevennia-test mud-bot</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> @irc2chan irc = irc.freenode.net 6667 #myevennia-test mud-bot
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Evennia will now create a new IRC bot <code class="docutils literal notranslate"><span class="pre">mud-bot</span></code> and connect it to the IRC network and the channel
|
||||
#myevennia. If you are connected to the IRC channel you will soon see the user <em>mud-bot</em> connect.</p>
|
||||
<p>Write something in the Evennia channel <em>irc</em>.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> irc Hello, World!
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> irc Hello, World!
|
||||
[irc] Anna: Hello, World!
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>If you are viewing your IRC channel with a separate IRC client you should see your text appearing
|
||||
there, spoken by the bot:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>mud-bot> [irc] Anna: Hello, World!
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>mud-bot> [irc] Anna: Hello, World!
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Write <code class="docutils literal notranslate"><span class="pre">Hello!</span></code> in your IRC client window and it will appear in your normal channel, marked with the
|
||||
name of the IRC channel you used (#evennia here).</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">irc</span><span class="p">]</span> <span class="n">Anna</span><span class="o">@</span><span class="c1">#myevennia-test: Hello!</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>[irc] Anna@#myevennia-test: Hello!
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Your Evennia gamers can now chat with users on external IRC channels!</p>
|
||||
|
|
@ -169,7 +171,7 @@ name of the IRC channel you used (#evennia here).</p>
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="IRC.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="installing-on-android">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="installing-on-android">
|
||||
<h1>Installing on Android<a class="headerlink" href="#installing-on-android" title="Permalink to this headline">¶</a></h1>
|
||||
<p>This page describes how to install and run the Evennia server on an Android phone. This will involve
|
||||
installing a slew of third-party programs from the Google Play store, so make sure you are okay with
|
||||
|
|
@ -100,18 +102,18 @@ following command:</p>
|
|||
</div>
|
||||
<p>(these tell clang, the C compiler, where to find the bits for zlib when building Pillow)</p>
|
||||
<p>Install the latest Evennia in a way that lets you edit the source</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>(evenv) $ pip install --upgrade -e 'git+https://github.com/evennia/evennia#egg=evennia'
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>(evenv) $ pip install --upgrade -e 'git+https://github.com/evennia/evennia#egg=evennia'
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This step will possibly take quite a while - we are downloading Evennia and are then installing it,
|
||||
building all of the requirements for Evennia to run. If you run into trouble on this step, please
|
||||
see <a class="reference external" href="Setup/Installing-on-Android.html#troubleshooting">Troubleshooting</a>.</p>
|
||||
see <a class="reference internal" href="#troubleshooting"><span class="std std-doc">Troubleshooting</span></a>.</p>
|
||||
<p>You can go to the dir where Evennia is installed with <code class="docutils literal notranslate"><span class="pre">cd</span> <span class="pre">$VIRTUAL_ENV/src/evennia</span></code>. <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">grep</span> <span class="pre">(something)</span></code> can be handy, as can <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">diff</span></code></p>
|
||||
</section>
|
||||
<section id="final-steps">
|
||||
<h3>Final steps<a class="headerlink" href="#final-steps" title="Permalink to this headline">¶</a></h3>
|
||||
<p>At this point, Evennia is installed on your phone! You can now continue with the original
|
||||
<a class="reference internal" href="Setup-Quickstart.html"><span class="doc">Setup Quickstart</span></a> instruction, we repeat them here for clarity.</p>
|
||||
<a class="reference internal" href="Setup-Quickstart.html"><span class="doc std std-doc">Setup Quickstart</span></a> instruction, we repeat them here for clarity.</p>
|
||||
<p>To start a new game:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>(evenv) $ evennia --init mygame
|
||||
(evenv) $ ls
|
||||
|
|
@ -124,7 +126,7 @@ mygame evenv
|
|||
(evenv) $ evennia start
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Your game should now be running! Open a web browser at http://localhost:4001 or point a telnet
|
||||
<p>Your game should now be running! Open a web browser at <a class="reference external" href="http://localhost:4001">http://localhost:4001</a> or point a telnet
|
||||
client to localhost:4000 and log in with the user you created.</p>
|
||||
</section>
|
||||
</section>
|
||||
|
|
@ -137,7 +139,7 @@ virtualenv as well as are in your game’s directory. You can then run evennia s
|
|||
(evenv) $ evennia start
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You may wish to look at the <a class="reference external" href="Setup/Getting-Started#linux-install">Linux Instructions</a> for more.</p>
|
||||
<p>You may wish to look at the <a class="reference internal" href="Extended-Installation.html#linux-install"><span class="std std-doc">Linux Instructions</span></a> for more.</p>
|
||||
</section>
|
||||
<section id="caveats">
|
||||
<h2>Caveats<a class="headerlink" href="#caveats" title="Permalink to this headline">¶</a></h2>
|
||||
|
|
@ -220,7 +222,7 @@ killed if your phone is heavily taxed. Termux seems to keep a notification up to
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Installing-on-Android.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="online-setup">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="online-setup">
|
||||
<h1>Online Setup<a class="headerlink" href="#online-setup" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Evennia development can be made without any Internet connection beyond fetching updates. At some
|
||||
point however, you are likely to want to make your game visible online, either as part opening it to
|
||||
|
|
@ -108,30 +110,12 @@ web services you are running through this router though.</p>
|
|||
<h3>Settings example<a class="headerlink" href="#settings-example" title="Permalink to this headline">¶</a></h3>
|
||||
<p>You can connect Evennia to the Internet without any changes to your settings. The default settings
|
||||
are easy to use but are not necessarily the safest. You can customize your online presence in your
|
||||
<a class="reference external" href="Components/Server-Conf.html#settings-file">settings file</a>. To have Evennia recognize changed port settings you have
|
||||
<a class="reference internal" href="Server-Conf.html#settings-file"><span class="std std-doc">settings file</span></a>. To have Evennia recognize changed port settings you have
|
||||
to do a full <code class="docutils literal notranslate"><span class="pre">evennia</span> <span class="pre">reboot</span></code> to also restart the Portal and not just the Server component.</p>
|
||||
<p>Below is an example of a simple set of settings, mostly using the defaults. Evennia will require
|
||||
access to five computer ports, of which three (only) should be open to the outside world. Below we
|
||||
continue to assume that our server address is <code class="docutils literal notranslate"><span class="pre">203.0.113.0</span></code>.</p>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="c1"># in mygame/server/conf/settings.py</span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># in mygame/server/conf/settings.py</span>
|
||||
|
||||
<span class="n">SERVERNAME</span> <span class="o">=</span> <span class="s2">"MyGame"</span>
|
||||
|
||||
|
|
@ -150,20 +134,14 @@ continue to assume that our server address is <code class="docutils literal notr
|
|||
|
||||
<span class="c1"># uncomment if you want to lock the server down for maintenance.</span>
|
||||
<span class="c1"># LOCKDOWN_MODE = True</span>
|
||||
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>Read on for a description of the individual settings.</p>
|
||||
</section>
|
||||
<section id="telnet">
|
||||
<h3>Telnet<a class="headerlink" href="#telnet" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||||
<span class="normal">2</span>
|
||||
<span class="normal">3</span>
|
||||
<span class="normal">4</span>
|
||||
<span class="normal">5</span>
|
||||
<span class="normal">6</span>
|
||||
<span class="normal">7</span>
|
||||
<span class="normal">8</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="c1"># Required. Change to whichever outgoing Telnet port(s) </span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Required. Change to whichever outgoing Telnet port(s) </span>
|
||||
<span class="c1"># you are allowed to use on your host.</span>
|
||||
<span class="n">TELNET_PORTS</span> <span class="o">=</span> <span class="p">[</span><span class="mi">4000</span><span class="p">]</span>
|
||||
<span class="c1"># Optional for security. Restrict which telnet </span>
|
||||
|
|
@ -172,27 +150,14 @@ continue to assume that our server address is <code class="docutils literal notr
|
|||
<span class="c1"># which accepts all interfaces.</span>
|
||||
<span class="n">TELNET_INTERFACES</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'0.0.0.0'</span><span class="p">]</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>The <code class="docutils literal notranslate"><span class="pre">TELNET_*</span></code> settings are the most important ones for getting a traditional base game going. Which
|
||||
IP addresses you have available depends on your server hosting solution (see the next sections).
|
||||
Some hosts will restrict which ports you are allowed you use so make sure to check.</p>
|
||||
</section>
|
||||
<section id="web-server">
|
||||
<h3>Web server<a class="headerlink" href="#web-server" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="c1"># Required. This is a list of tuples </span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Required. This is a list of tuples </span>
|
||||
<span class="c1"># (outgoing_port, internal_port). Only the outgoing</span>
|
||||
<span class="c1"># port should be open to the world! </span>
|
||||
<span class="c1"># set outgoing port to 80 if you want to run Evennia</span>
|
||||
|
|
@ -207,7 +172,7 @@ Some hosts will restrict which ports you are allowed you use so make sure to che
|
|||
<span class="c1"># IP address or URL when you run a production server. </span>
|
||||
<span class="n">ALLOWED_HOSTS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'*'</span><span class="p">]</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>The web server is always configured with two ports at a time. The <em>outgoing</em> port (<code class="docutils literal notranslate"><span class="pre">4001</span></code> by
|
||||
default) is the port external connections can use. If you don’t want users to have to specify the
|
||||
port when they connect, you should set this to <code class="docutils literal notranslate"><span class="pre">80</span></code> - this however only works if you are not running
|
||||
|
|
@ -218,17 +183,7 @@ change the outgoing port unless the default internal port is clashing with some
|
|||
</section>
|
||||
<section id="web-client">
|
||||
<h3>Web client<a class="headerlink" href="#web-client" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="c1"># Required. Change this to the main IP address of your server.</span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Required. Change this to the main IP address of your server.</span>
|
||||
<span class="n">WEBSOCKET_CLIENT_INTERFACE</span> <span class="o">=</span> <span class="s1">'0.0.0.0'</span>
|
||||
<span class="c1"># Optional and needed only if using a proxy or similar. Change </span>
|
||||
<span class="c1"># to the IP or address where the client can reach </span>
|
||||
|
|
@ -240,7 +195,7 @@ change the outgoing port unless the default internal port is clashing with some
|
|||
<span class="c1"># to WEBSOCKET_CLIENT_URL by the web client. </span>
|
||||
<span class="n">WEBSOCKET_CLIENT_PORT</span> <span class="o">=</span> <span class="mi">4002</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>The websocket-based web client needs to be able to call back to the server, and these settings must
|
||||
be changed for it to find where to look. If it cannot find the server you will get an warning in
|
||||
your browser’s Console (in the dev tools of the browser), and the client will revert to the AJAX-
|
||||
|
|
@ -248,16 +203,7 @@ based of the client instead, which tends to be slower.</p>
|
|||
</section>
|
||||
<section id="other-ports">
|
||||
<h3>Other ports<a class="headerlink" href="#other-ports" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="c1"># Optional public facing. Only allows SSL connections (off by default).</span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Optional public facing. Only allows SSL connections (off by default).</span>
|
||||
<span class="n">SSL_PORTS</span> <span class="o">=</span> <span class="p">[</span><span class="mi">4003</span><span class="p">]</span>
|
||||
<span class="n">SSL_INTERFACES</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'0.0.0.0'</span><span class="p">]</span>
|
||||
<span class="c1"># Optional public facing. Only if you allow SSH connections (off by default).</span>
|
||||
|
|
@ -268,9 +214,9 @@ based of the client instead, which tends to be slower.</p>
|
|||
<span class="c1"># outside world. </span>
|
||||
<span class="n">AMP_PORT</span> <span class="o">=</span> <span class="mi">4006</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>The <code class="docutils literal notranslate"><span class="pre">AMP_PORT</span></code> is required to work, since this is the internal port linking Evennia’s
|
||||
<a class="reference internal" href="../Components/Portal-And-Server.html"><span class="doc">Server and Portal</span></a> components together. The other ports are encrypted ports that may be
|
||||
<a class="reference internal" href="../Components/Portal-And-Server.html"><span class="doc std std-doc">Server and Portal</span></a> components together. The other ports are encrypted ports that may be
|
||||
useful for custom protocols but are otherwise not used.</p>
|
||||
</section>
|
||||
<section id="lockdown-mode">
|
||||
|
|
@ -289,10 +235,10 @@ drum up interest for your game and also shows people that Evennia is being used.
|
|||
even if you are just starting development - if you don’t give any telnet/web address it will appear
|
||||
as <em>Not yet public</em> and just be a teaser. If so, pick <em>pre-alpha</em> as the development status.</p>
|
||||
<p>To register, stand in your game dir, run</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">connections</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia connections
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>and follow the instructions. See the <a class="reference internal" href="Evennia-Game-Index.html"><span class="doc">Game index page</span></a> for more details.</p>
|
||||
<p>and follow the instructions. See the <a class="reference internal" href="Evennia-Game-Index.html"><span class="doc std std-doc">Game index page</span></a> for more details.</p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="ssl">
|
||||
|
|
@ -312,8 +258,8 @@ that issues them for free with assisted setup to make the entire process less pa
|
|||
<span class="n">WEBSOCKET_CLIENT_URL</span> <span class="o">=</span> <span class="s2">"wss://fqdn:4002"</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<section id="let-s-encrypt">
|
||||
<h3>Let’s Encrypt<a class="headerlink" href="#let-s-encrypt" title="Permalink to this headline">¶</a></h3>
|
||||
<section id="lets-encrypt">
|
||||
<h3>Let’s Encrypt<a class="headerlink" href="#lets-encrypt" title="Permalink to this headline">¶</a></h3>
|
||||
<p><a class="reference external" href="https://letsencrypt.org">Let’s Encrypt</a> is a certificate authority offering free certificates to
|
||||
secure a website with HTTPS. To get started issuing a certificate for your web server using Let’s
|
||||
Encrypt, see these links:</p>
|
||||
|
|
@ -325,7 +271,7 @@ certificate, use it and maintain it with your website.</p></li>
|
|||
<p>Also, on Freenode visit the #letsencrypt channel for assistance from the community. For an
|
||||
additional resource, Let’s Encrypt has a very active <a class="reference external" href="https://community.letsencrypt.org/">community
|
||||
forum</a>.</p>
|
||||
<p>[A blog where someone sets up Let’s Encrypt](https://www.digitalocean.com/community/tutorials/how-
|
||||
<p>[A blog where someone sets up Let’s Encrypt](<a class="reference external" href="https://www.digitalocean.com/community/tutorials/how-">https://www.digitalocean.com/community/tutorials/how-</a>
|
||||
to-secure-apache-with-let-s-encrypt-on-ubuntu-16-04)</p>
|
||||
<p>The only process missing from all of the above documentation is how to pass verification. This is
|
||||
how Let’s Encrypt verifies that you have control over your domain (not necessarily ownership, it’s
|
||||
|
|
@ -338,8 +284,8 @@ to use DNS verification.</p>
|
|||
<section id="relevant-ssl-proxy-setup-information">
|
||||
<h2>Relevant SSL Proxy Setup Information<a class="headerlink" href="#relevant-ssl-proxy-setup-information" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="Apache-Config.html"><span class="doc">Apache webserver configuration</span></a> (optional)</p></li>
|
||||
<li><p><a class="reference internal" href="HAProxy-Config.html"><span class="doc">HAProxy Config</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="Apache-Config.html"><span class="doc std std-doc">Apache webserver configuration</span></a> (optional)</p></li>
|
||||
<li><p><a class="reference internal" href="HAProxy-Config.html"><span class="doc std std-doc">HAProxy Config</span></a></p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="hosting-locally-or-remotely">
|
||||
|
|
@ -374,7 +320,7 @@ main internet connection terminated as a consequence.</p></li>
|
|||
</ul>
|
||||
<section id="setting-up-your-own-machine-as-a-server">
|
||||
<h4>Setting up your own machine as a server<a class="headerlink" href="#setting-up-your-own-machine-as-a-server" title="Permalink to this headline">¶</a></h4>
|
||||
<p><a class="reference external" href="Setup/Online-Setup.html#connecting-from-the-outside">The first section</a> of this page describes how to do this
|
||||
<p><a class="reference internal" href="#connecting-from-the-outside"><span class="std std-doc">The first section</span></a> of this page describes how to do this
|
||||
and allow users to connect to the IP address of your machine/router.</p>
|
||||
<p>A complication with using a specific IP address like this is that your home IP might not remain the
|
||||
same. Many ISPs (Internet Service Providers) allocates a <em>dynamic</em> IP to you which could change at
|
||||
|
|
@ -434,7 +380,7 @@ game stays online. Many services guarantee a certain level of up-time and also d
|
|||
for you. Make sure to check, some offer lower rates in exchange for you yourself being fully
|
||||
responsible for your data/backups.</p></li>
|
||||
<li><p>Usually offers a fixed domain name, so no need to mess with IP addresses.</p></li>
|
||||
<li><p>May have the ability to easily deploy <a class="reference internal" href="Running-Evennia-in-Docker.html"><span class="doc">docker</span></a> versions of evennia
|
||||
<li><p>May have the ability to easily deploy <a class="reference internal" href="Running-Evennia-in-Docker.html"><span class="doc std std-doc">docker</span></a> versions of evennia
|
||||
and/or your game.</p></li>
|
||||
</ul>
|
||||
<p><strong>Disadvantages</strong></p>
|
||||
|
|
@ -452,7 +398,7 @@ you have no choice but to sit it out (but you’ll hopefully be warned ahead of
|
|||
Docker) to deploy your game to the remote server; it will likely ease installation and deployment.
|
||||
Docker images may be a little confusing if you are completely new to them though.</p>
|
||||
<p>If not using docker, and assuming you know how to connect to your account over ssh/PuTTy, you should
|
||||
be able to follow the <a class="reference internal" href="Setup-Quickstart.html"><span class="doc">Setup Quickstart</span></a> instructions normally. You only need Python
|
||||
be able to follow the <a class="reference internal" href="Setup-Quickstart.html"><span class="doc std std-doc">Setup Quickstart</span></a> instructions normally. You only need Python
|
||||
and GIT pre-installed; these should both be available on any servers (if not you should be able to
|
||||
easily ask for them to be installed). On a VPS or Cloud service you can install them yourself as
|
||||
needed.</p>
|
||||
|
|
@ -465,43 +411,68 @@ so make sure you know which ports are available to use and reconfigure Evennia a
|
|||
<section id="hosting-options">
|
||||
<h3>Hosting options<a class="headerlink" href="#hosting-options" title="Permalink to this headline">¶</a></h3>
|
||||
<p>To find commercial solutions, browse the web for “shell access”, “VPS” or “Cloud services” in your
|
||||
region. You may find useful offers for “low cost” VPS hosting on [Low End Box][7]. The associated
|
||||
[Low End Talk][8] forum can be useful for health checking the many small businesses that offer
|
||||
region. You may find useful offers for “low cost” VPS hosting on <a class="reference external" href="https://lowendbox.com/">Low End Box</a>. The associated
|
||||
<a class="reference external" href="https://www.lowendtalk.com">Low End Talk</a> forum can be useful for health checking the many small businesses that offer
|
||||
“value” hosting, and occasionally for technical suggestions.</p>
|
||||
<p>There are all sorts of services available. Below are some international suggestions offered by
|
||||
Evennia users:</p>
|
||||
<p>Hosting name | Type | Lowest price | Comments
|
||||
:————–:|:——-:—————
|
||||
<a class="reference external" href="https://silvren.com">silvren.com</a> | Shell account | Free for MU* | Private hobby provider so don’t assume backups
|
||||
or expect immediate support. To ask for an account, connect with a MUD client to iweb.localecho.net,
|
||||
port 4201 and ask for “Jarin”.
|
||||
[Digital Ocean][2] | VPS | $5/month | You can get a $50 credit if you use the referral link
|
||||
https://m.do.co/c/8f64fec2670c - if you do, once you’ve had it long enough to have paid $25 we will
|
||||
get that as a referral bonus to help Evennia development.
|
||||
[Amazon Web services][3] | Cloud | ~$5/month / on-demand | Free Tier first 12 months. Regions
|
||||
available around the globe.
|
||||
[Amazon Lightsail][9] | Cloud | $5/month | Free first month. AWS’s new “fixed cost” offering.
|
||||
[Genesis MUD hosting][4] | Shell account | $8/month | Dedicated MUD host with very limited memory
|
||||
offerings. As for 2017, runs a 13 years old Python version (2.4) so you’d need to either convince
|
||||
them to update or compile yourself. Note that Evennia needs <em>at least</em> the “Deluxe” package (50MB
|
||||
RAM) and probably <em>a lot</em> higher for a production game. This host is <em>not</em> recommended for Evennia.
|
||||
[Host1Plus][5] | VPS & Cloud | $4/month | $4-$8/month depending on length of sign-up period.
|
||||
[Scaleway][6] | Cloud | €3/month / on-demand | EU based (Paris, Amsterdam). Smallest option
|
||||
provides 2GB RAM.
|
||||
[Prgmr][10] | VPS | $5/month | 1 month free with a year prepay. You likely want some experience with
|
||||
servers with this option as they don’t have a lot of support.
|
||||
[Linode][11] | Cloud | $5/month / on-demand | Multiple regions. Smallest option provides 1GB RAM
|
||||
<em>Please help us expand this list.</em></p>
|
||||
<p><a class="reference external" href="https://www.digitalocean.com/pricing">2</a>
|
||||
<a class="reference external" href="https://aws.amazon.com/pricing/">3</a>
|
||||
<a class="reference external" href="https://www.genesismuds.com/">4</a>
|
||||
<a class="reference external" href="https://www.host1plus.com/">5</a>
|
||||
<a class="reference external" href="https://www.scaleway.com/">6</a>
|
||||
<a class="reference external" href="https://lowendbox.com/">7</a>
|
||||
<a class="reference external" href="https://www.lowendtalk.com">8</a>
|
||||
<a class="reference external" href="https://amazonlightsail.com">9</a>
|
||||
<a class="reference external" href="https://prgmr.com/">10</a>
|
||||
<a class="reference external" href="https://www.linode.com/">11</a></p>
|
||||
<table class="colwidths-auto docutils align-default">
|
||||
<thead>
|
||||
<tr class="row-odd"><th class="head"><p>Hosting name</p></th>
|
||||
<th class="head"><p>Type</p></th>
|
||||
<th class="head"><p>Lowest price</p></th>
|
||||
<th class="head"><p>Comments</p></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://silvren.com">silvren.com</a></p></td>
|
||||
<td><p>Shell account</p></td>
|
||||
<td><p>Free for MU*</p></td>
|
||||
<td><p>Private hobby provider so don’t assume backups or expect immediate support. To ask for an account,connect with a MUD client to <a class="reference external" href="http://iweb.localecho.net">iweb.localecho.net</a>, port 4201 and ask for “Jarin”.</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="https://www.digitalocean.com/pricing">Digital Ocean</a></p></td>
|
||||
<td><p>VPS</p></td>
|
||||
<td><p>$5/month</p></td>
|
||||
<td><p>You can get a $50 credit if you use the referral link <a class="reference external" href="https://m.do.co/c/8f64fec2670c">https://m.do.co/c/8f64fec2670c</a> - if you do, once you’ve had it long enough to have paid $25 we will get that as a referral bonus to help Evennia development.</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://aws.amazon.com/pricing/">Amazon Web services</a></p></td>
|
||||
<td><p>Cloud</p></td>
|
||||
<td><p>~$5/month / on-demand</p></td>
|
||||
<td><p>Free Tier first 12 months. Regions available around the globe.</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="https://amazonlightsail.com">Amazon Lightsail</a></p></td>
|
||||
<td><p>Cloud</p></td>
|
||||
<td><p>$5/month</p></td>
|
||||
<td><p>Free first month. AWS’s new “fixed cost” offering.</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://www.genesismuds.com/">Genesis MUD hosting</a></p></td>
|
||||
<td><p>Shell account</p></td>
|
||||
<td><p>$8/month</p></td>
|
||||
<td><p>Dedicated MUD host with very limited memory offerings. As for 2017, runs a 13 years old Python version (2.4) so you’d need to either convince them to update or compile yourself. Note that Evennia needs <em>at least</em> the “Deluxe” package (50MB RAM) and probably <em>a lot</em> higher for a production game. This host is <em>not</em> recommended for Evennia.</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="https://www.host1plus.com/">Host1Plus</a></p></td>
|
||||
<td><p>VPS & Cloud</p></td>
|
||||
<td><p>$4/month</p></td>
|
||||
<td><p>$4-$8/month depending on length of sign-up period.</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://www.scaleway.com/">Scaleway</a></p></td>
|
||||
<td><p>Cloud</p></td>
|
||||
<td><p>€3/month / on-demand</p></td>
|
||||
<td><p>EU based (Paris, Amsterdam). Smallest option provides 2GB RAM.</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference external" href="https://prgmr.com/">Prgmr</a></p></td>
|
||||
<td><p>VPS</p></td>
|
||||
<td><p>$5/month</p></td>
|
||||
<td><p>1 month free with a year prepay. You likely want some experience with servers with this option as they don’t have a lot of support.</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference external" href="https://www.linode.com/">Linode</a></p></td>
|
||||
<td><p>Cloud</p></td>
|
||||
<td><p>$5/month / on-demand</p></td>
|
||||
<td><p>Multiple regions. Smallest option provides 1GB RAM</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><em>Please help us expand this list.</em></p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="cloud9">
|
||||
|
|
@ -514,7 +485,7 @@ else as normal.</p>
|
|||
<p>Note that, as of December 2017, Cloud9 was re-released by Amazon as a service within their AWS cloud
|
||||
service offering. New customers entitled to the 1 year AWS “free tier” may find it provides
|
||||
sufficient resources to operate a Cloud9 development environment without charge.
|
||||
https://aws.amazon.com/cloud9/</p>
|
||||
<a class="reference external" href="https://aws.amazon.com/cloud9/">https://aws.amazon.com/cloud9/</a></p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
|
@ -552,7 +523,7 @@ https://aws.amazon.com/cloud9/</p>
|
|||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#ssl">SSL</a><ul>
|
||||
<li><a class="reference internal" href="#let-s-encrypt">Let’s Encrypt</a></li>
|
||||
<li><a class="reference internal" href="#lets-encrypt">Let’s Encrypt</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#relevant-ssl-proxy-setup-information">Relevant SSL Proxy Setup Information</a></li>
|
||||
|
|
@ -593,7 +564,7 @@ https://aws.amazon.com/cloud9/</p>
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Online-Setup.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="rss">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="rss">
|
||||
<h1>RSS<a class="headerlink" href="#rss" title="Permalink to this headline">¶</a></h1>
|
||||
<p><a class="reference external" href="https://en.wikipedia.org/wiki/RSS">RSS</a> is a format for easily tracking updates on websites. The
|
||||
principle is simple - whenever a site is updated, a small text file is updated. An RSS reader can
|
||||
|
|
@ -53,34 +55,34 @@ blog. Admins might also want to track the latest Evennia updates through our own
|
|||
<h2>Configuring RSS<a class="headerlink" href="#configuring-rss" title="Permalink to this headline">¶</a></h2>
|
||||
<p>To use RSS, you first need to install the <a class="reference external" href="https://code.google.com/p/feedparser/">feedparser</a> python
|
||||
module.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="n">feedparser</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>pip install feedparser
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Next you activate RSS support in your config file by settting <code class="docutils literal notranslate"><span class="pre">RSS_ENABLED=True</span></code>.</p>
|
||||
<p>Start/reload Evennia as a privileged user. You should now have a new command available, <code class="docutils literal notranslate"><span class="pre">@rss2chan</span></code>:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="nd">@rss2chan</span> <span class="o"><</span><span class="n">evennia_channel</span><span class="o">></span> <span class="o">=</span> <span class="o"><</span><span class="n">rss_url</span><span class="o">></span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> @rss2chan <evennia_channel> = <rss_url>
|
||||
</pre></div>
|
||||
</div>
|
||||
<section id="setting-up-rss-step-by-step">
|
||||
<h3>Setting up RSS, step by step<a class="headerlink" href="#setting-up-rss-step-by-step" title="Permalink to this headline">¶</a></h3>
|
||||
<p>You can connect RSS to any Evennia channel, but for testing, let’s set up a new channel “rss”.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> @ccreate rss = RSS feeds are echoed to this channel!
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> @ccreate rss = RSS feeds are echoed to this channel!
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Let’s connect Evennia’s code-update feed to this channel. The RSS url for evennia updates is
|
||||
<code class="docutils literal notranslate"><span class="pre">https://github.com/evennia/evennia/commits/master.atom</span></code>, so let’s add that:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="nd">@rss2chan</span> <span class="n">rss</span> <span class="o">=</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">evennia</span><span class="o">/</span><span class="n">evennia</span><span class="o">/</span><span class="n">commits</span><span class="o">/</span><span class="n">master</span><span class="o">.</span><span class="n">atom</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> @rss2chan rss = https://github.com/evennia/evennia/commits/master.atom
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>That’s it, really. New Evennia updates will now show up as a one-line title and link in the channel.
|
||||
Give the <code class="docutils literal notranslate"><span class="pre">@rss2chan</span></code> command on its own to show all connections. To remove a feed from a channel,
|
||||
you specify the connection again (use the command to see it in the list) but add the <code class="docutils literal notranslate"><span class="pre">/delete</span></code>
|
||||
switch:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="nd">@rss2chan</span><span class="o">/</span><span class="n">delete</span> <span class="n">rss</span> <span class="o">=</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">evennia</span><span class="o">/</span><span class="n">evennia</span><span class="o">/</span><span class="n">commits</span><span class="o">/</span><span class="n">master</span><span class="o">.</span><span class="n">atom</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> @rss2chan/delete rss = https://github.com/evennia/evennia/commits/master.atom
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You can connect any number of RSS feeds to a channel this way. You could also connect them to the
|
||||
same channels as <a class="reference internal" href="IRC.html"><span class="doc">IRC</span></a> to have the feed echo to external chat channels as well.</p>
|
||||
same channels as <a class="reference internal" href="IRC.html"><span class="doc std std-doc">IRC</span></a> to have the feed echo to external chat channels as well.</p>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
|
@ -136,7 +138,7 @@ same channels as <a class="reference internal" href="IRC.html"><span class="doc"
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="RSS.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="running-evennia-in-docker">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="running-evennia-in-docker">
|
||||
<h1>Running Evennia in Docker<a class="headerlink" href="#running-evennia-in-docker" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Evennia has an <a class="reference external" href="https://hub.docker.com/r/evennia/evennia/">official docker image</a> which makes
|
||||
running an Evennia-based game in a Docker container easy.</p>
|
||||
|
|
@ -48,7 +50,7 @@ running an Evennia-based game in a Docker container easy.</p>
|
|||
<a class="reference external" href="https://www.docker.com/">docker.com</a>. Linux users can likely also get it through their normal
|
||||
package manager.</p>
|
||||
<p>To fetch the latest evennia docker image, run:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">docker</span> <span class="n">pull</span> <span class="n">evennia</span><span class="o">/</span><span class="n">evennia</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>docker pull evennia/evennia
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This is a good command to know, it is also how you update to the latest version when we make updates
|
||||
|
|
@ -57,19 +59,19 @@ in the future. This tracks the <code class="docutils literal notranslate"><span
|
|||
<div><p>Note: If you want to experiment with the (unstable) <code class="docutils literal notranslate"><span class="pre">develop</span></code> branch, use <code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">pull</span> <span class="pre">evennia/evennia:develop</span></code>.</p>
|
||||
</div></blockquote>
|
||||
<p>Next <code class="docutils literal notranslate"><span class="pre">cd</span></code> to a place where your game dir is, or where you want to create it. Then run:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>docker run -it --rm -p 4000:4000 -p 4001:4001 -p 4002:4002 --rm -v $PWD:/usr/src/game --user
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>docker run -it --rm -p 4000:4000 -p 4001:4001 -p 4002:4002 --rm -v $PWD:/usr/src/game --user
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>$UID:$GID evennia/evennia</p>
|
||||
<p><span class="math notranslate nohighlight">\(UID:\)</span>GID evennia/evennia</p>
|
||||
<p>Having run this (see next section for a description of what’s what), you will be at a prompt inside
|
||||
the docker container:</p>
|
||||
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span>evennia<span class="p">|</span>docker /usr/src/game $
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>evennia<span class="p">|</span>docker /usr/src/game $
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>This is a normal shell prompt. We are in the <code class="docutils literal notranslate"><span class="pre">/usr/src/game</span></code> location inside the docker container.
|
||||
If you had anything in the folder you started from, you should see it here (with <code class="docutils literal notranslate"><span class="pre">ls</span></code>) since we
|
||||
mounted the current directory to <code class="docutils literal notranslate"><span class="pre">usr/src/game</span></code> (with <code class="docutils literal notranslate"><span class="pre">-v</span></code> above). You have the <code class="docutils literal notranslate"><span class="pre">evennia</span></code> command
|
||||
available and can now proceed to create a new game as per the <a class="reference internal" href="Setup-Quickstart.html"><span class="doc">Setup Quickstart</span></a>
|
||||
available and can now proceed to create a new game as per the <a class="reference internal" href="Setup-Quickstart.html"><span class="doc std std-doc">Setup Quickstart</span></a>
|
||||
instructions (you can skip the virtualenv and install ‘globally’ in the container though).</p>
|
||||
<p>You can run Evennia from inside this container if you want to, it’s like you are root in a little
|
||||
isolated Linux environment. To exit the container and all processes in there, press <code class="docutils literal notranslate"><span class="pre">Ctrl-D</span></code>. If you
|
||||
|
|
@ -82,11 +84,10 @@ your username and <code class="docutils literal notranslate"><span class="pre">m
|
|||
</div></blockquote>
|
||||
<section id="description-of-the-docker-run-command">
|
||||
<h3>Description of the <code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">run</span></code> command<a class="headerlink" href="#description-of-the-docker-run-command" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||||
<span class="normal">2</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> docker run -it --rm -p <span class="m">4000</span>:4000 -p <span class="m">4001</span>:4001 -p <span class="m">4002</span>:4002 --rm -v <span class="nv">$PWD</span>:/usr/src/game --user
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span> docker run -it --rm -p <span class="m">4000</span>:4000 -p <span class="m">4001</span>:4001 -p <span class="m">4002</span>:4002 --rm -v <span class="nv">$PWD</span>:/usr/src/game --user
|
||||
<span class="nv">$UID</span>:<span class="nv">$GID</span> evennia/evennia
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>This is what it does:</p>
|
||||
<ul class="simple">
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">run</span> <span class="pre">...</span> <span class="pre">evennia/evennia</span></code> tells us that we want to run a new container based on the
|
||||
|
|
@ -132,7 +133,7 @@ install dependencies.</p>
|
|||
container comes up. If you already have a game folder with a database set up you can also start the
|
||||
docker container and pass commands directly to it. The command you pass will be the main process to
|
||||
run in the container. From your game dir, run for example this command:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>docker run -it --rm -p 4000:4000 -p 4001:4001 -p 4002:4002 --rm -v $PWD:/usr/src/game
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>docker run -it --rm -p 4000:4000 -p 4001:4001 -p 4002:4002 --rm -v $PWD:/usr/src/game
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>evennia/evennia evennia start -l</p>
|
||||
|
|
@ -155,9 +156,9 @@ into it:</p>
|
|||
<code class="docutils literal notranslate"><span class="pre">evennia/evennia</span></code> image, but also makes sure to start evennia when it runs (so we don’t need to
|
||||
enter it and run commands).</p>
|
||||
<p>To build the image:</p>
|
||||
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> docker build -t mydhaccount/mygame .
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span> docker build -t mydhaccount/mygame .
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>(don’t forget the period at the end, it will use the <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> from the current location). Here
|
||||
<code class="docutils literal notranslate"><span class="pre">mydhaccount</span></code> is the name of your <code class="docutils literal notranslate"><span class="pre">dockerhub</span></code> account. If you don’t have a dockerhub account you can
|
||||
build the image locally only (name the container whatever you like in that case, like just
|
||||
|
|
@ -190,15 +191,12 @@ the image and started on the server! If your server environment forces you to us
|
|||
you can just map the normal ports differently in the command above.</p>
|
||||
<p>Above we added the <code class="docutils literal notranslate"><span class="pre">-d</span></code> option, which starts the container in <em>daemon</em> mode - you won’t see any
|
||||
return in the console. You can see it running with <code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">ps</span></code>:</p>
|
||||
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||||
<span class="normal">2</span>
|
||||
<span class="normal">3</span>
|
||||
<span class="normal">4</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span>$ docker ps
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ docker ps
|
||||
|
||||
CONTAINER ID IMAGE COMMAND CREATED ...
|
||||
f6d4ca9b2b22 mygame <span class="s2">"/bin/sh -c 'evenn..."</span> About a minute ago ...
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>Note the container ID, this is how you manage the container as it runs.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">docker</span> <span class="n">logs</span> <span class="n">f6d4ca9b2b22</span>
|
||||
</pre></div>
|
||||
|
|
@ -235,8 +233,8 @@ your image on Docker Hub and would like to provide contact info.</p>
|
|||
Reference</a>.</p>
|
||||
<p>For more information on volumes and Docker containers, see the Docker site’s <a class="reference external" href="https://docs.docker.com/engine/tutorials/dockervolumes/">Manage data in
|
||||
containers</a> page.</p>
|
||||
<section id="what-if-i-don-t-want-latest">
|
||||
<h3>What if I Don’t Want “LATEST”?<a class="headerlink" href="#what-if-i-don-t-want-latest" title="Permalink to this headline">¶</a></h3>
|
||||
<section id="what-if-i-dont-want-latest">
|
||||
<h3>What if I Don’t Want “LATEST”?<a class="headerlink" href="#what-if-i-dont-want-latest" title="Permalink to this headline">¶</a></h3>
|
||||
<p>A new <code class="docutils literal notranslate"><span class="pre">evennia/evennia</span></code> image is built automatically whenever there is a new commit to the <code class="docutils literal notranslate"><span class="pre">master</span></code>
|
||||
branch of Evennia. It is possible to create your own custom evennia base docker image based on any
|
||||
arbitrary commit.</p>
|
||||
|
|
@ -349,7 +347,7 @@ line.</p>
|
|||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#how-it-works">How it Works</a><ul>
|
||||
<li><a class="reference internal" href="#what-if-i-don-t-want-latest">What if I Don’t Want “LATEST”?</a></li>
|
||||
<li><a class="reference internal" href="#what-if-i-dont-want-latest">What if I Don’t Want “LATEST”?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#additional-creature-comforts">Additional Creature Comforts</a></li>
|
||||
|
|
@ -377,7 +375,7 @@ line.</p>
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Running-Evennia-in-Docker.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="security">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="security">
|
||||
<h1>Security<a class="headerlink" href="#security" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Hackers these days aren’t discriminating, and their backgrounds range from bored teenagers to
|
||||
international intelligence agencies. Their scripts and bots endlessly crawl the web, looking for
|
||||
|
|
@ -78,16 +80,16 @@ obvious to you where problems arise. These options should be disabled before you
|
|||
production– leaving them on can expose variables or code someone with malicious intent can easily
|
||||
abuse to compromise your environment.</p>
|
||||
<p>In <code class="docutils literal notranslate"><span class="pre">server/conf/settings.py</span></code>:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Disable Django's debug mode</span>
|
||||
<span class="n">DEBUG</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="c1"># Disable the in-game equivalent</span>
|
||||
<span class="n">IN_GAME_ERRORS</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="c1"># If you've registered a domain name, force Django to check host headers. Otherwise leave this</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span># Disable Django's debug mode
|
||||
DEBUG = False
|
||||
# Disable the in-game equivalent
|
||||
IN_GAME_ERRORS = False
|
||||
# If you've registered a domain name, force Django to check host headers. Otherwise leave this
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>as-is.
|
||||
# Note the leading period– it is not a typo!
|
||||
ALLOWED_HOSTS = [’.example.com’]</p>
|
||||
ALLOWED_HOSTS = [‘.example.com’]</p>
|
||||
</section>
|
||||
<section id="handle-user-uploaded-images-with-care">
|
||||
<h2>Handle user-uploaded images with care<a class="headerlink" href="#handle-user-uploaded-images-with-care" title="Permalink to this headline">¶</a></h2>
|
||||
|
|
@ -120,10 +122,10 @@ your users. Django’s security is robust, but if you don’t want/need these fe
|
|||
to force your users to use traditional clients to access your game, you might consider disabling
|
||||
either/both to minimize your attack surface.</p>
|
||||
<p>In <code class="docutils literal notranslate"><span class="pre">server/conf/settings.py</span></code>:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Disable the Javascript webclient</span>
|
||||
<span class="n">WEBCLIENT_ENABLED</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="c1"># Disable the website altogether</span>
|
||||
<span class="n">WEBSERVER_ENABLED</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span># Disable the Javascript webclient
|
||||
WEBCLIENT_ENABLED = False
|
||||
# Disable the website altogether
|
||||
WEBSERVER_ENABLED = False
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -137,37 +139,37 @@ server from these locations if you like to work remotely or don’t have a home
|
|||
changing the port used for ssh to 443, which most/all hotspot providers assume is HTTPS traffic and
|
||||
allows through.</p>
|
||||
<p>(Ubuntu) In /etc/ssh/sshd_config, change the following variable:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># What ports, IPs and protocols we listen for</span>
|
||||
<span class="n">Port</span> <span class="mi">443</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span># What ports, IPs and protocols we listen for
|
||||
Port 443
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Save, close, then run the following command:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">service</span> <span class="n">ssh</span> <span class="n">restart</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo service ssh restart
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="set-up-a-firewall">
|
||||
<h2>Set up a firewall<a class="headerlink" href="#set-up-a-firewall" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Ubuntu users can make use of the simple ufw utility. Anybody else can use iptables.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Install ufw (if not already)</span>
|
||||
<span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">ufw</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span># Install ufw (if not already)
|
||||
sudo apt-get install ufw
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>UFW’s default policy is to deny everything. We must specify what we want to allow through our
|
||||
firewall.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Allow terminal connections to your game</span>
|
||||
<span class="n">sudo</span> <span class="n">ufw</span> <span class="n">allow</span> <span class="mi">4000</span><span class="o">/</span><span class="n">tcp</span>
|
||||
<span class="c1"># Allow browser connections to your website</span>
|
||||
<span class="n">sudo</span> <span class="n">ufw</span> <span class="n">allow</span> <span class="mi">4001</span><span class="o">/</span><span class="n">tcp</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span># Allow terminal connections to your game
|
||||
sudo ufw allow 4000/tcp
|
||||
# Allow browser connections to your website
|
||||
sudo ufw allow 4001/tcp
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Use ONE of the next two commands depending on which port your ssh daemon is listening on:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">ufw</span> <span class="n">allow</span> <span class="mi">22</span><span class="o">/</span><span class="n">tcp</span>
|
||||
<span class="n">sudo</span> <span class="n">ufw</span> <span class="n">allow</span> <span class="mi">443</span><span class="o">/</span><span class="n">tcp</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo ufw allow 22/tcp
|
||||
sudo ufw allow 443/tcp
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Finally:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">ufw</span> <span class="n">enable</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo ufw enable
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Now the only ports open will be your administrative ssh port (whichever you chose), and Evennia on
|
||||
|
|
@ -175,7 +177,7 @@ firewall.</p>
|
|||
</section>
|
||||
<section id="use-an-external-webserver">
|
||||
<h2>Use an external webserver<a class="headerlink" href="#use-an-external-webserver" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Though not officially supported, there are some benefits to <a class="reference internal" href="Apache-Config.html"><span class="doc">deploying a webserver</span></a>
|
||||
<p>Though not officially supported, there are some benefits to <a class="reference internal" href="Apache-Config.html"><span class="doc std std-doc">deploying a webserver</span></a>
|
||||
to handle/proxy traffic to your Evennia instance.</p>
|
||||
<p>For example, Evennia’s game engine and webservice are tightly integrated. If you bring your game
|
||||
down for maintenance (or if it simply crashes) your website will go down with it. In these cases a
|
||||
|
|
@ -248,7 +250,7 @@ ISP snooping.</p>
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Security.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
220
docs/1.0-dev/Setup/Server-Conf.html
Normal file
220
docs/1.0-dev/Setup/Server-Conf.html
Normal file
|
|
@ -0,0 +1,220 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Server Conf — Evennia 1.0-dev documentation</title>
|
||||
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
||||
<script src="../_static/jquery.js"></script>
|
||||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
</head><body>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">Server Conf</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="server-conf">
|
||||
<h1>Server Conf<a class="headerlink" href="#server-conf" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Evennia runs out of the box without any changes to its settings. But there are several important
|
||||
ways to customize the server and expand it with your own plugins.</p>
|
||||
<section id="settings-file">
|
||||
<h2>Settings file<a class="headerlink" href="#settings-file" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The “Settings” file referenced throughout the documentation is the file
|
||||
<code class="docutils literal notranslate"><span class="pre">mygame/server/conf/settings.py</span></code>. This is automatically created on the first run of <code class="docutils literal notranslate"><span class="pre">evennia</span> <span class="pre">--init</span></code>
|
||||
(see the <a class="reference internal" href="Setup-Quickstart.html"><span class="doc std std-doc">Setup Quickstart</span></a> page).</p>
|
||||
<p>Your new <code class="docutils literal notranslate"><span class="pre">settings.py</span></code> is relatively bare out of the box. Evennia’s core settings file is actually
|
||||
<a class="reference external" href="https://github.com/evennia/evennia/blob/master/evennia/settings_default.py">evennia/settings_default.py</a>
|
||||
and is considerably more extensive (it is also heavily documented so you should refer to this file
|
||||
directly for the available settings).</p>
|
||||
<p>Since <code class="docutils literal notranslate"><span class="pre">mygame/server/conf/settings.py</span></code> is a normal Python module, it simply imports
|
||||
<code class="docutils literal notranslate"><span class="pre">evennia/settings_default.py</span></code> into itself at the top.</p>
|
||||
<p>This means that if any setting you want to change were to depend on some <em>other</em> default setting,
|
||||
you might need to copy & paste both in order to change them and get the effect you want (for most
|
||||
commonly changed settings, this is not something you need to worry about).</p>
|
||||
<p>You should never edit <code class="docutils literal notranslate"><span class="pre">evennia/settings_default.py</span></code>. Rather you should copy&paste the select
|
||||
variables you want to change into your <code class="docutils literal notranslate"><span class="pre">settings.py</span></code> and edit them there. This will overload the
|
||||
previously imported defaults.</p>
|
||||
<blockquote>
|
||||
<div><p>Warning: It may be tempting to copy everything from <code class="docutils literal notranslate"><span class="pre">settings_default.py</span></code> into your own settings
|
||||
file. There is a reason we don’t do this out of the box though: it makes it directly clear what
|
||||
changes you did. Also, if you limit your copying to the things you really need you will directly be
|
||||
able to take advantage of upstream changes and additions to Evennia for anything you didn’t
|
||||
customize.</p>
|
||||
</div></blockquote>
|
||||
<p>In code, the settings is accessed through</p>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span> <span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span>
|
||||
<span class="c1"># or (shorter):</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia</span> <span class="kn">import</span> <span class="n">settings</span>
|
||||
<span class="c1"># example:</span>
|
||||
<span class="n">servername</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">SERVER_NAME</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Each setting appears as a property on the imported <code class="docutils literal notranslate"><span class="pre">settings</span></code> object. You can also explore all
|
||||
possible options with <code class="docutils literal notranslate"><span class="pre">evennia.settings_full</span></code> (this also includes advanced Django defaults that are
|
||||
not touched in default Evennia).</p>
|
||||
<blockquote>
|
||||
<div><p>It should be pointed out that when importing <code class="docutils literal notranslate"><span class="pre">settings</span></code> into your code like this, it will be <em>read
|
||||
only</em>. You <em>cannot</em> edit your settings from your code! The only way to change an Evennia setting is
|
||||
to edit <code class="docutils literal notranslate"><span class="pre">mygame/server/conf/settings.py</span></code> directly. You also generally need to restart the server
|
||||
(possibly also the Portal) before a changed setting becomes available.</p>
|
||||
</div></blockquote>
|
||||
</section>
|
||||
<section id="other-files-in-the-server-conf-directory">
|
||||
<h2>Other files in the <code class="docutils literal notranslate"><span class="pre">server/conf</span></code> directory<a class="headerlink" href="#other-files-in-the-server-conf-directory" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Apart from the main <code class="docutils literal notranslate"><span class="pre">settings.py</span></code> file,</p>
|
||||
<ul class="simple">
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">at_initial_setup.py</span></code> - this allows you to add a custom startup method to be called (only) the
|
||||
very first time Evennia starts (at the same time as user #1 and Limbo is created). It can be made to
|
||||
start your own global scripts or set up other system/world-related things your game needs to have
|
||||
running from the start.</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">at_server_startstop.py</span></code> - this module contains two functions that Evennia will call every time
|
||||
the Server starts and stops respectively - this includes stopping due to reloading and resetting as
|
||||
well as shutting down completely. It’s a useful place to put custom startup code for handlers and
|
||||
other things that must run in your game but which has no database persistence.</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">connection_screens.py</span></code> - all global string variables in this module are interpreted by Evennia as
|
||||
a greeting screen to show when an Account first connects. If more than one string variable is
|
||||
present in the module a random one will be picked.</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">inlinefuncs.py</span></code> - this is where you can define custom <a class="reference internal" href="../Components/FuncParser.html"><span class="doc std std-doc">FuncParser functions</span></a>.</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">inputfuncs.py</span></code> - this is where you define custom <a class="reference internal" href="../Components/Inputfuncs.html"><span class="doc std std-doc">Input functions</span></a> to handle data
|
||||
from the client.</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">lockfuncs.py</span></code> - this is one of many possible modules to hold your own “safe” <em>lock functions</em> to
|
||||
make available to Evennia’s <a class="reference internal" href="../Components/Locks.html"><span class="doc std std-doc">Locks</span></a>.</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">mssp.py</span></code> - this holds meta information about your game. It is used by MUD search engines (which
|
||||
you often have to register with) in order to display what kind of game you are running along with
|
||||
statistics such as number of online accounts and online status.</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">oobfuncs.py</span></code> - in here you can define custom <a class="reference internal" href="../Concepts/OOB.html"><span class="doc std std-doc">OOB functions</span></a>.</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">portal_services_plugin.py</span></code> - this allows for adding your own custom services/protocols to the
|
||||
Portal. It must define one particular function that will be called by Evennia at startup. There can
|
||||
be any number of service plugin modules, all will be imported and used if defined. More info can be
|
||||
found <a class="reference external" href="https://code.google.com/p/evennia/wiki/SessionProtocols#Adding_custom_Protocols">here</a>.</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">server_services_plugin.py</span></code> - this is equivalent to the previous one, but used for adding new
|
||||
services to the Server instead. More info can be found
|
||||
<a class="reference external" href="https://code.google.com/p/evennia/wiki/SessionProtocols#Adding_custom_Protocols">here</a>.</p></li>
|
||||
</ul>
|
||||
<p>Some other Evennia systems can be customized by plugin modules but has no explicit template in
|
||||
<code class="docutils literal notranslate"><span class="pre">conf/</span></code>:</p>
|
||||
<ul class="simple">
|
||||
<li><p><em><a class="reference external" href="http://cmdparser.py">cmdparser.py</a></em> - a custom module can be used to totally replace Evennia’s default command parser.
|
||||
All this does is to split the incoming string into “command name” and “the rest”. It also handles
|
||||
things like error messages for no-matches and multiple-matches among other things that makes this
|
||||
more complex than it sounds. The default parser is <em>very</em> generic, so you are most often best served
|
||||
by modifying things further down the line (on the command parse level) than here.</p></li>
|
||||
<li><p><em>at_search.py</em> - this allows for replacing the way Evennia handles search results. It allows to
|
||||
change how errors are echoed and how multi-matches are resolved and reported (like how the default
|
||||
understands that “2-ball” should match the second “ball” object if there are two of them in the
|
||||
room).</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="serverconf">
|
||||
<h2>ServerConf<a class="headerlink" href="#serverconf" title="Permalink to this headline">¶</a></h2>
|
||||
<p>There is a special database model called <code class="docutils literal notranslate"><span class="pre">ServerConf</span></code> that stores server internal data and settings
|
||||
such as current account count (for interfacing with the webserver), startup status and many other
|
||||
things. It’s rarely of use outside the server core itself but may be good to
|
||||
know about if you are an Evennia developer.</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<p class="logo"><a href="../index.html">
|
||||
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
|
||||
</a></p>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" />
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
<p><h3><a href="../index.html">Table of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Server Conf</a><ul>
|
||||
<li><a class="reference internal" href="#settings-file">Settings file</a></li>
|
||||
<li><a class="reference internal" href="#other-files-in-the-server-conf-directory">Other files in the <code class="docutils literal notranslate"><span class="pre">server/conf</span></code> directory</a></li>
|
||||
<li><a class="reference internal" href="#serverconf">ServerConf</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div role="note" aria-label="source link">
|
||||
<!--h3>This Page</h3-->
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../_sources/Setup/Server-Conf.md.txt"
|
||||
rel="nofollow">Show Page Source</a></li>
|
||||
</ul>
|
||||
</div><h3>Links</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.evennia.com">Home page</a> </li>
|
||||
<li><a href="https://github.com/evennia/evennia">Evennia Github</a> </li>
|
||||
<li><a href="http://games.evennia.com">Game Index</a> </li>
|
||||
<li>
|
||||
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
|
||||
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
|
||||
<a href="https://evennia.blogspot.com/">Blog</a>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Server-Conf.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">Server Conf</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, The Evennia developer community.
|
||||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,7 +40,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="the-evennia-default-settings-file">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="the-evennia-default-settings-file">
|
||||
<h1>The Evennia Default Settings file<a class="headerlink" href="#the-evennia-default-settings-file" title="Permalink to this headline">¶</a></h1>
|
||||
<p>TODO</p>
|
||||
</section>
|
||||
|
|
@ -83,7 +85,7 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Settings-File.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -46,48 +48,48 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="server-setup-and-life">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="server-setup-and-life">
|
||||
<h1>Server Setup and Life<a class="headerlink" href="#server-setup-and-life" title="Permalink to this headline">¶</a></h1>
|
||||
<p>This documentation covers how to setup and maintain the server, from first install to opening your game to the public.</p>
|
||||
<section id="installation-running">
|
||||
<h2>Installation & running<a class="headerlink" href="#installation-running" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="Setup-Quickstart.html"><span class="doc">Installation & Setup quick-start</span></a> - one page to quickly get you going</p></li>
|
||||
<li><p><a class="reference internal" href="Extended-Installation.html"><span class="doc">Extended Install instructions</span></a> - if you have trouble or want to contribute to Evennia itself</p></li>
|
||||
<li><p><a class="reference internal" href="Running-Evennia-in-Docker.html"><span class="doc">Running through Docker</span></a> - alternative install method, useful for quick deployment on remote servers</p></li>
|
||||
<li><p><a class="reference internal" href="Installing-on-Android.html"><span class="doc">Installing Evennia on Android</span></a> - for those craving a mobile life</p></li>
|
||||
<li><p><a class="reference internal" href="Start-Stop-Reload.html"><span class="doc">Controlling the server</span></a> - an extended view on how to start/stop/update the server</p></li>
|
||||
<li><p><a class="reference internal" href="Setup-Quickstart.html"><span class="doc std std-doc">Installation & Setup quick-start</span></a> - one page to quickly get you going</p></li>
|
||||
<li><p><a class="reference internal" href="Extended-Installation.html"><span class="doc std std-doc">Extended Install instructions</span></a> - if you have trouble or want to contribute to Evennia itself</p></li>
|
||||
<li><p><a class="reference internal" href="Running-Evennia-in-Docker.html"><span class="doc std std-doc">Running through Docker</span></a> - alternative install method, useful for quick deployment on remote servers</p></li>
|
||||
<li><p><a class="reference internal" href="Installing-on-Android.html"><span class="doc std std-doc">Installing Evennia on Android</span></a> - for those craving a mobile life</p></li>
|
||||
<li><p><a class="reference internal" href="Start-Stop-Reload.html"><span class="doc std std-doc">Controlling the server</span></a> - an extended view on how to start/stop/update the server</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="installing-custom-game-dirs">
|
||||
<h2>Installing custom game dirs<a class="headerlink" href="#installing-custom-game-dirs" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="../Contribs/Arxcode-installing-help.html"><span class="doc">Installing Arxcode</span></a> - a custom gamedir based on the popular Evennia game <a class="reference external" href="https://play.arxgame.org/">Arx</a></p></li>
|
||||
<li><p><a class="reference internal" href="../Contribs/Arxcode-installing-help.html"><span class="doc std std-doc">Installing Arxcode</span></a> - a custom gamedir based on the popular Evennia game <a class="reference external" href="https://play.arxgame.org/">Arx</a></p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="configuring">
|
||||
<h2>Configuring<a class="headerlink" href="#configuring" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="Settings-File.html"><span class="doc">The settings file</span></a> - how and where to change the main settings of the server</p></li>
|
||||
<li><p><a class="reference internal" href="Choosing-An-SQL-Server.html"><span class="doc">Change database engine</span></a> - if you want to use something other than SQLite3</p></li>
|
||||
<li><p><a class="reference internal" href="Evennia-Game-Index.html"><span class="doc">Evennia game index</span></a> - register your upcoming game with the index to start the hype going</p></li>
|
||||
<li><p><a class="reference internal" href="IRC.html"><span class="doc">Chat on IRC</span></a> - how to link your game’s channels to an external <a class="reference external" href="https://en.wikipedia.org/wiki/Internet_Relay_Chat">IRC</a> channel</p></li>
|
||||
<li><p><a class="reference internal" href="Grapevine.html"><span class="doc">Chat on Grapevine</span></a> - how to link your game’s channels the <a class="reference external" href="https://grapevine.haus/">Grapevine</a> mud network/chat</p></li>
|
||||
<li><p><a class="reference internal" href="RSS.html"><span class="doc">Messages to RSS</span></a> - have your game notify people through RSS</p></li>
|
||||
<li><p><a class="reference internal" href="How-to-connect-Evennia-to-Twitter.html"><span class="doc">Messages to Twitter</span></a> - have Evennia send messages to <a class="reference external" href="https://twitter.com/">Twitter</a> (requires some coding)</p></li>
|
||||
<li><p><a class="reference internal" href="Settings-File.html"><span class="doc std std-doc">The settings file</span></a> - how and where to change the main settings of the server</p></li>
|
||||
<li><p><a class="reference internal" href="Choosing-An-SQL-Server.html"><span class="doc std std-doc">Change database engine</span></a> - if you want to use something other than SQLite3</p></li>
|
||||
<li><p><a class="reference internal" href="Evennia-Game-Index.html"><span class="doc std std-doc">Evennia game index</span></a> - register your upcoming game with the index to start the hype going</p></li>
|
||||
<li><p><a class="reference internal" href="IRC.html"><span class="doc std std-doc">Chat on IRC</span></a> - how to link your game’s channels to an external <a class="reference external" href="https://en.wikipedia.org/wiki/Internet_Relay_Chat">IRC</a> channel</p></li>
|
||||
<li><p><a class="reference internal" href="Grapevine.html"><span class="doc std std-doc">Chat on Grapevine</span></a> - how to link your game’s channels the <a class="reference external" href="https://grapevine.haus/">Grapevine</a> mud network/chat</p></li>
|
||||
<li><p><a class="reference internal" href="RSS.html"><span class="doc std std-doc">Messages to RSS</span></a> - have your game notify people through RSS</p></li>
|
||||
<li><p><a class="reference internal" href="How-to-connect-Evennia-to-Twitter.html"><span class="doc std std-doc">Messages to Twitter</span></a> - have Evennia send messages to <a class="reference external" href="https://twitter.com/">Twitter</a> (requires some coding)</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="going-public">
|
||||
<h2>Going public<a class="headerlink" href="#going-public" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="Security.html"><span class="doc">Notes about security</span></a> - some things to think about to stay safe(r)</p>
|
||||
<li><p><a class="reference internal" href="Security.html"><span class="doc std std-doc">Notes about security</span></a> - some things to think about to stay safe®</p>
|
||||
<ul>
|
||||
<li><p><a class="reference internal" href="HAProxy-Config.html"><span class="doc">Using HAProxy</span></a> - putting a proxy in front of the game server for security</p></li>
|
||||
<li><p><a class="reference internal" href="Apache-Config.html"><span class="doc">Using Apache as a webserver</span></a> - use Apache instead of Evennia’s webserver (limited support)</p></li>
|
||||
<li><p><a class="reference internal" href="HAProxy-Config.html"><span class="doc std std-doc">Using HAProxy</span></a> - putting a proxy in front of the game server for security</p></li>
|
||||
<li><p><a class="reference internal" href="Apache-Config.html"><span class="doc std std-doc">Using Apache as a webserver</span></a> - use Apache instead of Evennia’s webserver (limited support)</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p><a class="reference internal" href="Online-Setup.html"><span class="doc">Taking your server online</span></a> - decide on where to host and configure your game for production</p></li>
|
||||
<li><p><a class="reference internal" href="Client-Support-Grid.html"><span class="doc">Client support grid</span></a> - clients known to work (or not) with Evennia</p></li>
|
||||
<li><p><a class="reference internal" href="Online-Setup.html"><span class="doc std std-doc">Taking your server online</span></a> - decide on where to host and configure your game for production</p></li>
|
||||
<li><p><a class="reference internal" href="Client-Support-Grid.html"><span class="doc std std-doc">Client support grid</span></a> - clients known to work (or not) with Evennia</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
||||
|
|
@ -149,7 +151,7 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Setup-Overview.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -46,7 +48,7 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="setup-quickstart">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="setup-quickstart">
|
||||
<h1>Setup quickstart<a class="headerlink" href="#setup-quickstart" title="Permalink to this headline">¶</a></h1>
|
||||
<p>The Evennia server is installed, run and maintained from the terminal (console/CMD on Windows). Starting the
|
||||
server doesn’t make anything visible online. Once you download everything you can in fact develop your game
|
||||
|
|
@ -54,21 +56,21 @@ in complete isolation if you want, without needing any access to the internet.</
|
|||
<section id="installation">
|
||||
<h2>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Evennia supports Python 3.7 to 3.9. As with most Python packages, using a
|
||||
<a class="reference external" href="Glossary.html#virtualenv">virtualenv</a> is recommended in order to keep your
|
||||
<a class="reference internal" href="../Glossary.html#virtualenv"><span class="std std-doc">virtualenv</span></a> is recommended in order to keep your
|
||||
installation independent from the system libraries. It’s <em>not</em> recommended
|
||||
to install Evennia as superuser.</p>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Warning</p>
|
||||
<p>This is not yet available. Switch to the 0.9.5 version of these docs to install Evennia.</p>
|
||||
</div>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="n">evennia</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>pip install evennia
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Make sure the <code class="docutils literal notranslate"><span class="pre">evennia</span></code> command works. Use <code class="docutils literal notranslate"><span class="pre">evennia</span> <span class="pre">-h</span></code> for usage help (or read on).</p>
|
||||
<p>If you are having trouble, want to install in some other way (like with Docker)
|
||||
or want to contribute to Evennia itself, check out the <a class="reference internal" href="Extended-Installation.html"><span class="doc">Extended Installation
|
||||
instructions</span></a>. It also has a <a class="reference external" href="Setup/Extended-Installation.html#Troubleshooting">troubleshooting
|
||||
section</a> for different operating
|
||||
or want to contribute to Evennia itself, check out the <a class="reference internal" href="Extended-Installation.html"><span class="doc std std-doc">Extended Installation
|
||||
instructions</span></a>. It also has a <a class="reference internal" href="Extended-Installation.html#troubleshooting"><span class="std std-doc">troubleshooting
|
||||
section</span></a> for different operating
|
||||
systems.</p>
|
||||
</section>
|
||||
<section id="initialize-a-new-game">
|
||||
|
|
@ -76,7 +78,7 @@ systems.</p>
|
|||
<p>Use <code class="docutils literal notranslate"><span class="pre">cd</span></code> to enter a folder where you want to do your game development. Here (and in
|
||||
the rest of the Evennia documentation) we call this folder <code class="docutils literal notranslate"><span class="pre">mygame</span></code>, but you should of course
|
||||
name your game whatever you like:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="o">--</span><span class="n">init</span> <span class="n">mygame</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia --init mygame
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This will create a new folder <code class="docutils literal notranslate"><span class="pre">mygame</span></code> (or whatever you chose) in your current location. This
|
||||
|
|
@ -85,12 +87,12 @@ contains empty templates and all the default settings needed to start the server
|
|||
<section id="start-the-new-game">
|
||||
<h2>Start the new game<a class="headerlink" href="#start-the-new-game" title="Permalink to this headline">¶</a></h2>
|
||||
<p><code class="docutils literal notranslate"><span class="pre">cd</span></code> into your game folder (<code class="docutils literal notranslate"><span class="pre">mygame</span></code> in our case). Next, run</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">migrate</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia migrate
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This will create the default database (Sqlite3). The database file ends up as <code class="docutils literal notranslate"><span class="pre">mygame/server/evennia.db3</span></code>. If you
|
||||
ever want to start from a fresh database, just delete this file and re-run <code class="docutils literal notranslate"><span class="pre">evennia</span> <span class="pre">migrate</span></code> again.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">start</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia start
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Set your user-name and password when prompted. This will be the “god user” or “superuser” in-game. The email is optional.</p>
|
||||
|
|
@ -103,15 +105,15 @@ a web browser at <a class="reference external" href="http://localhost:4001">http
|
|||
<section id="see-server-logs">
|
||||
<h2>See server logs<a class="headerlink" href="#see-server-logs" title="Permalink to this headline">¶</a></h2>
|
||||
<p>This will echol the server logs to the terminal as they come in:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="o">--</span><span class="n">log</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia --log
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>or</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="o">-</span><span class="n">l</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia -l
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You can also start logging immediately when running <code class="docutils literal notranslate"><span class="pre">evennia</span></code> commands, such as</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">start</span> <span class="o">-</span><span class="n">l</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia start -l
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To exit the log view, enter <code class="docutils literal notranslate"><span class="pre">Ctrl-C</span></code> (<code class="docutils literal notranslate"><span class="pre">Cmd-C</span></code> for Mac). This will not affect the server.</p>
|
||||
|
|
@ -119,21 +121,21 @@ a web browser at <a class="reference external" href="http://localhost:4001">http
|
|||
<section id="restarting-and-stopping">
|
||||
<h2>Restarting and stopping<a class="headerlink" href="#restarting-and-stopping" title="Permalink to this headline">¶</a></h2>
|
||||
<p>You can restart the server without disconnecting any connected players:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">restart</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia restart
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To do a full stop and restart (will disconnect everyone):</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">reboot</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia reboot
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Full stop of the server (will need to use <code class="docutils literal notranslate"><span class="pre">start</span></code> to activate it again):</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">stop</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia stop
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="the-next-step">
|
||||
<h2>The Next step<a class="headerlink" href="#the-next-step" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Why not head into the <a class="reference internal" href="../Howto/Starting/Part1/Starting-Part1.html"><span class="doc">Starting Tutorial</span></a> to learn how to start making your new game!</p>
|
||||
<p>Why not head into the <a class="reference internal" href="../Howto/Starting/Part1/Starting-Part1.html"><span class="doc std std-doc">Starting Tutorial</span></a> to learn how to start making your new game!</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
|
@ -196,7 +198,7 @@ a web browser at <a class="reference external" href="http://localhost:4001">http
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Setup-Quickstart.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<script src="../_static/language_data.js"></script>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
|
@ -38,43 +40,43 @@
|
|||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="start-stop-reload">
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="start-stop-reload">
|
||||
<h1>Start Stop Reload<a class="headerlink" href="#start-stop-reload" title="Permalink to this headline">¶</a></h1>
|
||||
<p>You control Evennia from your game folder (we refer to it as <code class="docutils literal notranslate"><span class="pre">mygame/</span></code> here), using the <code class="docutils literal notranslate"><span class="pre">evennia</span></code>
|
||||
program. If the <code class="docutils literal notranslate"><span class="pre">evennia</span></code> program is not available on the command line you must first install
|
||||
Evennia as described in the <a class="reference internal" href="Setup-Quickstart.html"><span class="doc">Setup Quickstart</span></a> page.</p>
|
||||
Evennia as described in the <a class="reference internal" href="Setup-Quickstart.html"><span class="doc std std-doc">Setup Quickstart</span></a> page.</p>
|
||||
<blockquote>
|
||||
<div><p>Hint: If you ever try the <code class="docutils literal notranslate"><span class="pre">evennia</span></code> command and get an error complaining that the command is not
|
||||
available, make sure your <a class="reference external" href="Glossary.html#virtualenv">virtualenv</a> is active.</p>
|
||||
available, make sure your <a class="reference internal" href="../Glossary.html#virtualenv"><span class="std std-doc">virtualenv</span></a> is active.</p>
|
||||
</div></blockquote>
|
||||
<p>Below are described the various management options. Run</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="o">-</span><span class="n">h</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia -h
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>to give you a brief help and</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">menu</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia menu
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>to give you a menu with options.</p>
|
||||
<section id="starting-evennia">
|
||||
<h2>Starting Evennia<a class="headerlink" href="#starting-evennia" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Evennia consists of two components, the Evennia <a class="reference internal" href="../Components/Portal-And-Server.html"><span class="doc">Server and Portal</span></a>. Briefly,
|
||||
<p>Evennia consists of two components, the Evennia <a class="reference internal" href="../Components/Portal-And-Server.html"><span class="doc std std-doc">Server and Portal</span></a>. Briefly,
|
||||
the <em>Server</em> is what is running the mud. It handles all game-specific things but doesn’t care
|
||||
exactly how players connect, only that they have. The <em>Portal</em> is a gateway to which players
|
||||
connect. It knows everything about telnet, ssh, webclient protocols etc but very little about the
|
||||
game. Both are required for a functioning mud.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">evennia</span> <span class="n">start</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> evennia start
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The above command will start the Portal, which in turn will boot up the Server. The command will
|
||||
print a summary of the process and unless there is an error you will see no further output. Both
|
||||
components will instead log to log files in <code class="docutils literal notranslate"><span class="pre">mygame/server/logs/</span></code>. For convenience you can follow
|
||||
those logs directly in your terminal by attaching <code class="docutils literal notranslate"><span class="pre">-l</span></code> to commands:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">evennia</span> <span class="o">-</span><span class="n">l</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> evennia -l
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Will start following the logs of an already running server. When starting Evennia you can also do</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">evennia</span> <span class="n">start</span> <span class="o">-</span><span class="n">l</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> evennia start -l
|
||||
</pre></div>
|
||||
</div>
|
||||
<blockquote>
|
||||
|
|
@ -87,12 +89,12 @@ those logs directly in your terminal by attaching <code class="docutils literal
|
|||
processes (but not both) as foreground processes in <em>interactive</em> mode. This means they will log
|
||||
directly to the terminal (rather than to log files that we then echo to the terminal) and you can
|
||||
kill the process (not just the log-file view) with <code class="docutils literal notranslate"><span class="pre">Ctrl-C</span></code>.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">istart</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia istart
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>will start/restart the <em>Server</em> in interactive mode. This is required if you want to run a
|
||||
<em>debugger</em>. Next time you reload the server, it will return to normal mode.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">ipstart</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia ipstart
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>will start the <em>Portal</em> in interactive mode. This is usually only necessary if you want to run
|
||||
|
|
@ -105,11 +107,11 @@ again. Everyone will get a message and the game will be briefly paused for all a
|
|||
server
|
||||
reboots. Since they are connected to the <em>Portal</em>, their connections are not lost.</p>
|
||||
<p>Reloading is as close to a “warm reboot” you can get. It reinitializes all code of Evennia, but
|
||||
doesn’t kill “persistent” <a class="reference internal" href="../Components/Scripts.html"><span class="doc">Scripts</span></a>. It also calls <code class="docutils literal notranslate"><span class="pre">at_server_reload()</span></code> hooks on all
|
||||
doesn’t kill “persistent” <a class="reference internal" href="../Components/Scripts.html"><span class="doc std std-doc">Scripts</span></a>. It also calls <code class="docutils literal notranslate"><span class="pre">at_server_reload()</span></code> hooks on all
|
||||
objects so you
|
||||
can save eventual temporary properties you want.</p>
|
||||
<p>From in-game the <code class="docutils literal notranslate"><span class="pre">@reload</span></code> command is used. You can also reload the server from outside the game:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">evennia</span> <span class="n">reload</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> evennia reload
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Sometimes reloading from “the outside” is necessary in case you have added some sort of bug that
|
||||
|
|
@ -123,7 +125,7 @@ will be disconnected during a
|
|||
reset. A reset will however purge all non-persistent scripts and will call <code class="docutils literal notranslate"><span class="pre">at_server_shutdown()</span></code>
|
||||
hooks. It can be a good way to clean unsafe scripts during development, for example.</p>
|
||||
<p>From in-game the <code class="docutils literal notranslate"><span class="pre">@reset</span></code> command is used. From the terminal:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">reset</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia reset
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -131,12 +133,12 @@ hooks. It can be a good way to clean unsafe scripts during development, for exam
|
|||
<h2>Rebooting<a class="headerlink" href="#rebooting" title="Permalink to this headline">¶</a></h2>
|
||||
<p>This will shut down <em>both</em> Server and Portal, which means all connected players will lose their
|
||||
connection. It can only be initiated from the terminal:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">reboot</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia reboot
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This is identical to doing these two commands:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">evennia</span> <span class="n">stop</span>
|
||||
<span class="n">evennia</span> <span class="n">start</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> evennia stop
|
||||
evennia start
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -145,7 +147,7 @@ connection. It can only be initiated from the terminal:</p>
|
|||
<p>A full shutdown closes Evennia completely, both Server and Portal. All accounts will be booted and
|
||||
systems saved and turned off cleanly.</p>
|
||||
<p>From inside the game you initiate a shutdown with the <code class="docutils literal notranslate"><span class="pre">@shutdown</span></code> command. From command line you do</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">evennia</span> <span class="n">stop</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> evennia stop
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You will see messages of both Server and Portal closing down. All accounts will see the shutdown
|
||||
|
|
@ -156,11 +158,11 @@ runs in interactive mode.</p>
|
|||
<h2>Status and info<a class="headerlink" href="#status-and-info" title="Permalink to this headline">¶</a></h2>
|
||||
<p>To check basic Evennia settings, such as which ports and services are active, this will repeat the
|
||||
initial return given when starting the server:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">info</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia info
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You can also get a briefer run-status from both components with this command</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">status</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia status
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This can be useful for automating checks to make sure the game is running and is responding.</p>
|
||||
|
|
@ -169,11 +171,11 @@ initial return given when starting the server:</p>
|
|||
<h2>Killing (Linux/Mac only)<a class="headerlink" href="#killing-linux-mac-only" title="Permalink to this headline">¶</a></h2>
|
||||
<p>In the extreme case that neither of the server processes locks up and does not respond to commands,
|
||||
you can send them kill-signals to force them to shut down. To kill only the Server:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">skill</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia skill
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To kill both Server and Portal:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">kill</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia kill
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Note that this functionality is not supported on Windows.</p>
|
||||
|
|
@ -182,13 +184,11 @@ you can send them kill-signals to force them to shut down. To kill only the Serv
|
|||
<h2>Django options<a class="headerlink" href="#django-options" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The <code class="docutils literal notranslate"><span class="pre">evennia</span></code> program will also pass-through options used by the <code class="docutils literal notranslate"><span class="pre">django-admin</span></code>. These operate on
|
||||
the database in various ways.</p>
|
||||
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||||
<span class="normal">2</span>
|
||||
<span class="normal">3</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> evennia migrate <span class="c1"># migrate the database</span>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span> evennia migrate <span class="c1"># migrate the database</span>
|
||||
evennia shell <span class="c1"># launch an interactive, django-aware python shell</span>
|
||||
evennia dbshell <span class="c1"># launch database shell</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<p>For (many) more options, see <a class="reference external" href="https://docs.djangoproject.com/en/1.7/ref/django-admin/#usage">the django-admin
|
||||
docs</a>.</p>
|
||||
</section>
|
||||
|
|
@ -218,7 +218,7 @@ Evennia failed to restart (that is, it remains in a shut-down state). Look at yo
|
|||
terminal to see what the problem is - you will usually see a clear traceback showing what went
|
||||
wrong.</p>
|
||||
<p>Fix your bug then run</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">evennia</span> <span class="n">start</span>
|
||||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>evennia start
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Assuming the bug was fixed, this will start the Server manually (while not restarting the Portal).
|
||||
|
|
@ -287,7 +287,7 @@ In-game you should now get the message that the Server has successfully restarte
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Start-Stop-Reload.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
<li><a href="../../0.95/index.html">0.95 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue