New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiling\Installation Guide Needs Updating (and install script?) #65

Closed
broxen opened this Issue Oct 20, 2017 · 11 comments

Comments

Projects
None yet
2 participants
@broxen
Collaborator

broxen commented Oct 20, 2017

The installation guide on the forums and github wiki need updating and/or additional detail.

Specific objectives should be:

  • How to Compile in major platforms and the tools or libraries required. See #36
  • What the server needs in order to operate properly (data files, piggs, etc), and where to get those files
  • How to configure local_1.cfg (might need a name change? proposed: settings.cfg
  • How to setup and configure the postgres database
  • Include a SQL script to setup the database automagically
  • How to acquire the client and what version of the client work
  • How to configure the client to access your server
  • Common Issues/FAQ

These guides might be best broken up into three separate how-tos: howto-compile howto-setup-server and howto-setup-client.

I'm happy to tackle this task, but as of now, I'm not 100% sure I'm doing it correctly myself. Once I've gotten everything running on both Linux and Windows, I'll feel more confident taking this on.

In the future, an install script that walks a user through the setup/config would be excellent.

@nemerle

This comment has been minimized.

Contributor

nemerle commented Oct 20, 2017

Note: SEGS supports sqlite now, so that might be a better choice for default setup guide target.

@nemerle nemerle added the enhancement label Oct 20, 2017

@broxen

This comment has been minimized.

Collaborator

broxen commented Oct 20, 2017

Just leaving myself a reminder: bin.pigg must be extracted to the server data folder.

./piggtool -x PATH_TO_COH_INSTALL/piggs/bin.pigg

@broxen

This comment has been minimized.

Collaborator

broxen commented Oct 23, 2017

This has overlap with #36

@broxen

This comment has been minimized.

Collaborator

broxen commented Oct 23, 2017

Initial DRAFT attached. As always, feedback is appreciated.

Not sure if you actually want to offer binary downloads, but this file supposes that they exist.

Remaining tasks below.

  • Building from source should provide a /db/ folder with empty segs and segs_game databases. Could this be done in a way that eliminates a lot of the database setup?
  • Rename local_1.cfg to settings.cfg
  • How to create Admin Account for server?
  • Creation of https://segs.nemerle.eu/download with links to latest stable release binary as shown under INSTALLATION section 1
INSTALLATION GUIDE & FAQ
======

CONTENTS OF THIS FILE
------
- Requirements and notes
- Installation
- Setup Database
- Configuration
- More information
- FAQs

REQUIREMENTS AND NOTES
------

SEGS requires:

- A copy of the CoH client from Issue 0 (release) version 0.22. This can be found through 
  various sources online, or via magnet link: 
  - magnet:?xt=urn:btih:c2e7e0aa72004594337d73ae6a305242e23d815f
- One of the following databases:
  - PostgreSQL 8.3 (or greater) (http://www.postgresql.org/).
  - SQLite 3.3.7 (or greater) (http://www.sqlite.org/).

For more detailed version of this guide or forums for help see the links below:
- https://segs.nemerle.eu/
- https://segs.nemerle.eu/developers
- https://segs.nemerle.eu/forumz/index.php

To report any bugs, please visit our github:
- https://github.com/Segs/Segs

Note that all directories mentioned in this document are always relative to the
directory of your SEGS installation, and commands are meant to be run from
this directory (except for the initial commands that create that directory).


INSTALLATION
------

1. Download and extract SEGS

   You can obtain the latest stable SEGS release from https://segs.nemerle.eu/download 
   -- the files are available in .tar.gz and .zip formats and can be extracted using most
   compression tools.

   To download and extract the files on a typical Unix/Linux command line, use
   the following commands:

   wget https://segs.nemerle.eu/download/segs-latest.tar.gz
   tar -zxvf segs-latest.tar.gz

   This will create a new directory segs/ containing all SEGS files and
   directories. Then, proceed to the section of this README titled **Configuration**

2. Optionally, download and compile from source.

   SEGS will compile in either Linux or Windows. The libraries you'll need to install are 
   listed below and are availble from your distro's package manager, or via the links below:

   - QT >5.8		# https://www.qt.io/download-qt-for-application-development
   - CMake >3.6		# https://cmake.org/download/
   - Git		# https://git-scm.com/download

   For detailed instructions, visit https://segs.nemerle.eu/developers

3. Install CoX Client version 0.22

   SEGS will only communicate with the CoH client from Issue 0 (release) version 0.22. 
   This can be found through various sources online, or via magnet link:

   - magnet:?xt=urn:btih:c2e7e0aa72004594337d73ae6a305242e23d815f

   After the download completes, navigate to the download folder and run CoX-Setup.exe
   Follow the prompts to install the Issue 0 CoX client.

4. Copy the PIGG files to SEGS

   The CoX client uses files ending `.pigg` to store important game information. 
   SEGS uses these same files to run the game world. Once installed, navigate to the CoX 
   folder and copy the contents the `/piggs/` subfolder to the `/data/` directory of SEGS.

5. Using the piggtool located in the main SEGS folder, extract BIN files from bin.pigg

   SEGS requires that we extract bin.pigg to the `/data/bin/` folder. From the console:

   ./piggtool -x PATH_TO_COH_INSTALL/piggs/bin.pigg


SETUP DATABASE
------

SEGS requires two databases in order to function: `segs` and `segs_game`. These instructions 
assume that you're running a SQLite database server, as this is the recommended setup for 
new installations. Configuration of the SQLite database may be easier with the help of a 
GUI tool. Two popular tools available for Windows & Linux are listed below:

- SQLiteMan		# http://sqliteman.yarpen.cz/
- SQLiteStudio	# https://sqlitestudio.pl

1. Create databases `segs` and `segs_game`

2. Create user `segsadmin`, set password, and grant appropriate permissions

3. Import SEGS table schemas from `./db/`


CONFIGURATION
------

1. Setup ./settings.cfg

   The settings.cfg file contains all of the configuration options for your private SEGS 
   server. This file contains several sections which are broken down below:

   --AdminServer--

   --AuthServer--

   --GameServer--

   --MapServer--

2. Create Admin Account



MORE INFORMATION
------

Additional information available here.

FAQs
------

FAQs here.
@nemerle

This comment has been minimized.

Contributor

nemerle commented Oct 23, 2017

Take a look here, might be something useful : https://segs.nemerle.eu/developers

@broxen

This comment has been minimized.

Collaborator

broxen commented Oct 25, 2017

Perfect. I'll incorporate that into the file.

@broxen

This comment has been minimized.

Collaborator

broxen commented Nov 8, 2017

Started 2nd phase of this targeting the top level README.md and CONTRIBUTING.md

@nemerle can you confirm that the following libraries are still required by SEGS?

  • zlib
  • SDL2 (mapviewer?)
  • ace (is this being supplanted by Qt?)

Also, is the redmine still in use, or should I change those references to GitHub?

Thanks in advance.

@nemerle

This comment has been minimized.

Contributor

nemerle commented Nov 8, 2017

  • zlib - no longer in use, we use qt to handle this
  • SDL2 is no longer used (the mapviewer is using full blown game engine, that is built alongside it now )
  • ACE is here to stay, and it's built as a part of the whole build process

Basically the only segs dependency that is not built by our CMake scripts is Qt

@broxen

This comment has been minimized.

Collaborator

broxen commented Nov 8, 2017

Great! Thank you!

@broxen

This comment has been minimized.

Collaborator

broxen commented Nov 13, 2017

This can now be closed.

@nemerle

This comment has been minimized.

Contributor

nemerle commented Nov 13, 2017

Indeed it can, awesome work broxen 👍

@nemerle nemerle closed this Nov 13, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment