{"_id":"54c9904c7a11f60d0022a9cb","__v":71,"user":"54c66cc52b94bb19003d3423","version":{"_id":"54c670dbf2ab9319008e8153","forked_from":"54c66cdf2b94bb19003d3427","project":"54c66cdf2b94bb19003d3424","__v":3,"createdAt":"2015-01-26T16:52:43.765Z","releaseDate":"2015-01-26T16:52:43.765Z","categories":["54c670dcf2ab9319008e8154","54c6779d2b94bb19003d345e","54c67bfe2b94bb19003d3466"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"0.7.0","version":"0.7"},"category":{"_id":"54c670dcf2ab9319008e8154","pages":["54c670dcf2ab9319008e8155","54c672d7f2ab9319008e8164","54c67409f2ab9319008e816e","54c6771cf0320f0d00ac9be2","54c677412b94bb19003d345b","54c98fd569c3390d00033a26","54c9900d69c3390d00033a28","54c9904c7a11f60d0022a9cb","54d6ad1811e31f0d001b8903","551460b7e74c1c2300f9b387"],"project":"54c66cdf2b94bb19003d3424","version":"54c670dbf2ab9319008e8153","__v":10,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-01-26T16:35:44.174Z","from_sync":false,"order":0,"slug":"documentation","title":"Documentation"},"project":"54c66cdf2b94bb19003d3424","updates":["54d3fb1fae3d0f0d00f0060b","54ed88432a6fa23700660c83","556f6c619893290d00988cb3","55baa1133f0767230008f46e","562e4b2b4376430d006f17af","5675b33570f07a0d0063223e","5675b4c370f07a0d0063223f","57629b305cacae2b003ab759","5873dec29cd5c725004f674e","5873dee21d09ed2500b8a828","5873e3363b5d851900b50e4d","588aa91f6a263e0f008eef17","588aa9a0b39ea10f0047a849","5898ad095196950f00e7953b","5898ad797c5f330f009109af","58f69a30afa6920f00dd5e77"],"next":{"pages":[],"description":""},"createdAt":"2015-01-29T01:43:40.744Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":0,"body":"[block:callout]\n{\n  \"type\": \"danger\",\n  \"body\": \"**This application is intended for experienced system administrators and is not intended to be setup on a local home computer.**\",\n  \"title\": \"Warning:\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"If you run into any issues during the setup process, check the [FAQ page](http://docs.solder.io/v0.7/docs/faq-frequently-asked-questions)\"\n}\n[/block]\nNeed help with Solder? Pop into our Solder [Discord](https://discord.gg/0XSjZibQg6yguy1x) chat channel!\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Before You Begin\"\n}\n[/block]\nYou will need to setup your server with a proper software stack. Technic recommends a \"LEMP\" stack. This stands for Linux OS, (E)Nginx web server, MySQL database server, and dynamic content processor PHP. Here are some great guides from Digital Ocean.\n\n- Ubuntu 14.04: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04\n\n- Debian 7: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-debian-7\n\n- Arch Linux: https://www.digitalocean.com/community/tutorials/how-to-install-lemp-nginx-mysql-php-stack-on-arch-linux\n\n- CentOS 6: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-6\n\n- CentOS 7: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"Windows installation is not supported (No help will be provided.)\",\n  \"title\": \"Warning:\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Requirements\"\n}\n[/block]\n- PHP 5.4+\n- PHP MCrypt Extension\n- PHP Curl Extension\n- PHP CLI Extension\n- PHP5-SQLite if using default\n- Curl\n- Composer - PHP Dependency Manager\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"sudo apt-get install git php5 php5-cli php5-curl php5-mcrypt php5-mysql php5-apcu php5-fpm php5-sqlite\",\n      \"language\": \"shell\",\n      \"name\": \"Ubuntu/Debian\"\n    },\n    {\n      \"code\": \"sudo yum install git php5 php5-cli php5-curl php5-mcrypt php5-mysql php5-apcu php5-fpm\",\n      \"language\": \"shell\",\n      \"name\": \"RedHat/CentOS/Fedora\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"MCrypt\",\n  \"body\": \"Make sure PHP MCrypt extension is enabled after you installed it.\\n\\n`mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/`\\n`php5enmod mcrypt`\\nsudo service php5-fpm restart\\n`php -m | grep mcrypt`\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Composer\"\n}\n[/block]\nA new feature in Solder v0.7 is Composer. Composer is a tool for dependency management in PHP. It allows you to declare the dependent libraries your project needs and it will install them in your project for you.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"When using the following guides, do not create your own composer.json file, or perform \\\"composer install\\\" or \\\"php composer.phar install\\\" commands. These are handled later in this Getting Started guide.\",\n  \"title\": \"Note:\"\n}\n[/block]\n- Linux/Unix/Mac OS X: https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx\n\n- Windows: https://getcomposer.org/doc/00-intro.md#installation-windows\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Installing the program globally is recommended to ensure proper execution.\",\n  \"title\": \"Note:\"\n}\n[/block]\nBefore using Composer make sure to check for updates.\n\n- If you installed Composer locally: \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"sudo php composer.phar self-update\",\n      \"language\": \"shell\",\n      \"name\": \"Local Composer\"\n    }\n  ]\n}\n[/block]\n- If you installed it globally: \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"sudo composer self-update\",\n      \"language\": \"shell\",\n      \"name\": \"Global Composer\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"General Setup\"\n}\n[/block]\nYou can setup Solder by cloning the GitHub repository and running a Composer command. Cloning the GitHub repository will create a folder called \"TechnicSolder\" in the directory where you ran the command. \n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"Please make sure you are running the git clone command where you want to Solder directory to be located. Copying the folder can break the GitHub link that provides Solder's ability to update\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"git clone https://github.com/TechnicPack/TechnicSolder.git\",\n      \"language\": \"shell\",\n      \"name\": \"HTTP (recommended)\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"git clone git:::at:::github.com:TechnicPack/TechnicSolder.git\",\n      \"language\": \"shell\",\n      \"name\": \"SSH\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Note:\",\n  \"body\": \"If you prefer the cloned directory to be named differently, append the name to the git command. (ex. `git clone git@github.com:TechnicPack/TechnicSolder.git <folder-name>`)\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"If you prefer to test dev changes, add `-b dev` to the clone command. This will clone the development branch instead of the master branch.\",\n  \"title\": \"Note:\"\n}\n[/block]\nNow install the application from the root of the solder folder.\n\n- If you installed Composer locally:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"php composer.phar install --no-dev --no-interaction\",\n      \"language\": \"text\",\n      \"name\": \"Local Composer\"\n    }\n  ]\n}\n[/block]\n- If you installed it globally:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"composer install --no-dev --no-interaction\",\n      \"language\": \"text\",\n      \"name\": \"Global Composer\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Note:\",\n  \"body\": \"If you cloned the development branch, you can remove the `--no-dev` argument to install development tools.\"\n}\n[/block]\nThis will also copy `app/config-sample` to `app/config` and `app/database-sample/production.sqlite` to `app/database/production.sqlite`\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Initial Configuration\"\n}\n[/block]\n`app/config/solder.php` has 3 values that need to be filled in:\n\n* **repo_location:** This points to the location of your repo files either locally or remotely. If your Solder install is on the same box as your mod repository, you can fill in the absolute path to those files. This will greatly increase the speed in which md5's are calculated for your database. If your mod repository is hosted elsewhere, you can simply put the web accessible URL in for this value. Make sure to include a trailing slash in *both* cases.\n* **mirror_url:** The mirror url is the web accessible url to your mod repository. If you are using a URL for repo_location you can just fill in the same value here.\n* **md5filetimeout:** This is the amount of time Solder will wait before giving up trying to calculate the MD5 checksum.\n\n`app/config/database.php` is set to sqlite as default and pointed at a pre-migrated sqlite d file for out-of-box setup.\n\n`app/config/app.php` has a few values that will need to be adjusted:\n\n* **debug:** This enables the Laravel debugger for development purposes. Default is `false`\n* **url:** This is the public facing URL of your Solder application and is used by the application when auto-building URLs in the API and throughout the application. Default is `http://solder.app:8000`\n* **timezone: ** Sets the timezone for PHP date and date-time functions. Default is `EST`\n* **key: ** Is used by Solder for encrypting passwords, etc. This is auto-generated on `composer install`.\n\nPlatform API Keys are now handled through the application itself. See \"Configure Solder -> API Key Management\"\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Database Configuration\"\n}\n[/block]\nSolder is set to use sqlite by default right out of the box. If you wish to use a different data store provider, modify the settings located in your `app/config/database.php` file.\n\nIts very easy to switch between data stores. You can do so by changing the 'default' key to the key from the array under \"Database Connections\"\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"\\t/*\\n\\t|--------------------------------------------------------------------------\\n\\t| Default Database Connection Name\\n\\t|--------------------------------------------------------------------------\\n\\t|\\n\\t| Here you may specify which of the database connections below you wish\\n\\t| to use as your default connection for all database work. Of course\\n\\t| you may use many connections at once using the Database library.\\n\\t|\\n\\t*/\\n\\t\\n\\n\\t'default' => 'mysql',\\n\\n\\t/*\\n\\t|--------------------------------------------------------------------------\\n\\t| Database Connections\\n\\t|--------------------------------------------------------------------------\\n\\t|\\n\\t| Here are each of the database connections setup for your application.\\n\\t| Of course, examples of configuring each database platform that is\\n\\t| supported by Laravel is shown below to make development simple.\\n\\t|\\n\\t|\\n\\t| All database work in Laravel is done through the PHP PDO facilities\\n\\t| so make sure you have the driver for your particular database of\\n\\t| choice installed on your machine before you begin development.\\n\\t|\\n\\t*/\\n\\n\\t'connections' => array(\\n\\n\\t\\t'sqlite' => array(\\n\\t\\t\\t'driver'   => 'sqlite',\\n\\t\\t\\t'database' => __DIR__.'/../database/production.sqlite',\\n\\t\\t\\t'prefix'   => '',\\n\\t\\t),\\n\\n\\t\\t'mysql' => array(\\n\\t\\t\\t'driver'    => 'mysql',\\n\\t\\t\\t'host'      => 'localhost',\\n\\t\\t\\t'database'  => 'solder',\\n\\t\\t\\t'username'  => 'solder',\\n\\t\\t\\t'password'  => 'solder',\\n\\t\\t\\t'charset'   => 'utf8',\\n\\t\\t\\t'collation' => 'utf8_unicode_ci',\\n\\t\\t\\t'prefix'    => '',\\n\\t\\t),\\n\\n\\t\\t'pgsql' => array(\\n\\t\\t\\t'driver'   => 'pgsql',\\n\\t\\t\\t'host'     => 'localhost',\\n\\t\\t\\t'database' => 'forge',\\n\\t\\t\\t'username' => 'forge',\\n\\t\\t\\t'password' => '',\\n\\t\\t\\t'charset'  => 'utf8',\\n\\t\\t\\t'prefix'   => '',\\n\\t\\t\\t'schema'   => 'public',\\n\\t\\t),\\n\\n\\t\\t'sqlsrv' => array(\\n\\t\\t\\t'driver'   => 'sqlsrv',\\n\\t\\t\\t'host'     => 'localhost',\\n\\t\\t\\t'database' => 'database',\\n\\t\\t\\t'username' => 'root',\\n\\t\\t\\t'password' => '',\\n\\t\\t\\t'prefix'   => '',\\n\\t\\t),\\n\\n\\t),\\n\",\n      \"language\": \"php\",\n      \"name\": \"MySQL Example\"\n    },\n    {\n      \"code\": \"\\t/*\\n\\t|--------------------------------------------------------------------------\\n\\t| Default Database Connection Name\\n\\t|--------------------------------------------------------------------------\\n\\t|\\n\\t| Here you may specify which of the database connections below you wish\\n\\t| to use as your default connection for all database work. Of course\\n\\t| you may use many connections at once using the Database library.\\n\\t|\\n\\t*/\\n\\t\\n\\n\\t'default' => 'sqlite',\\n\\n\\t/*\\n\\t|--------------------------------------------------------------------------\\n\\t| Database Connections\\n\\t|--------------------------------------------------------------------------\\n\\t|\\n\\t| Here are each of the database connections setup for your application.\\n\\t| Of course, examples of configuring each database platform that is\\n\\t| supported by Laravel is shown below to make development simple.\\n\\t|\\n\\t|\\n\\t| All database work in Laravel is done through the PHP PDO facilities\\n\\t| so make sure you have the driver for your particular database of\\n\\t| choice installed on your machine before you begin development.\\n\\t|\\n\\t*/\\n\\n\\t'connections' => array(\\n\\n\\t\\t'sqlite' => array(\\n\\t\\t\\t'driver'   => 'sqlite',\\n\\t\\t\\t'database' => __DIR__.'/../database/production.sqlite',\\n\\t\\t\\t'prefix'   => '',\\n\\t\\t),\\n\\n\\t\\t'mysql' => array(\\n\\t\\t\\t'driver'    => 'mysql',\\n\\t\\t\\t'host'      => 'localhost',\\n\\t\\t\\t'database'  => 'solder',\\n\\t\\t\\t'username'  => 'solder',\\n\\t\\t\\t'password'  => 'solder',\\n\\t\\t\\t'charset'   => 'utf8',\\n\\t\\t\\t'collation' => 'utf8_unicode_ci',\\n\\t\\t\\t'prefix'    => '',\\n\\t\\t),\\n\\n\\t\\t'pgsql' => array(\\n\\t\\t\\t'driver'   => 'pgsql',\\n\\t\\t\\t'host'     => 'localhost',\\n\\t\\t\\t'database' => 'forge',\\n\\t\\t\\t'username' => 'forge',\\n\\t\\t\\t'password' => '',\\n\\t\\t\\t'charset'  => 'utf8',\\n\\t\\t\\t'prefix'   => '',\\n\\t\\t\\t'schema'   => 'public',\\n\\t\\t),\\n\\n\\t\\t'sqlsrv' => array(\\n\\t\\t\\t'driver'   => 'sqlsrv',\\n\\t\\t\\t'host'     => 'localhost',\\n\\t\\t\\t'database' => 'database',\\n\\t\\t\\t'username' => 'root',\\n\\t\\t\\t'password' => '',\\n\\t\\t\\t'prefix'   => '',\\n\\t\\t),\\n\\n\\t),\\n\",\n      \"language\": \"text\",\n      \"name\": \"SQLite Example\"\n    }\n  ]\n}\n[/block]\nOnce your data store connection is setup and working, Solder has a built in migration tool that that creates all of the required tables and data required to get Solder up and running.\n\n`migrate::install` - sets up the initial migration table that keeps track of changes made to your data store structure. You will only execute this command once during initial data store setup.\n\n`migrate` - creates the tables and data based on what is defined in the migration table. As Solder updates and changes, you will use this command to pull in any changes made to Solder tables/data structure.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"php artisan migrate:install\\nphp artisan migrate\",\n      \"language\": \"shell\",\n      \"name\": \"Migrate examples\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"Solder's comes with a pre-migrated SQLite data store ready for out-of-the-box setup. There is no need to run the migrate commands if you are using the provided SQLite store\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Web Server Configuration\"\n}\n[/block]\nYour final step is to make sure your web server is configured properly to handle traffic to Solder and its php files.\n\nYou should have already setup Nginx(or Apache) and PHP following the guides provided above.\n\nSee the Example Web Server Configs page for examples in configuring your web server for Solder: http://docs.solder.io/v0.7/docs/example-web-server-configs\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"File Permissions\",\n  \"body\": \"Your web server requires read access to the entire Solder folder. It also requires read & write access to the following directories:\\n\\n\\\"/public\\\"\\n\\\"/app/storage\\\"\\n\\\"/app/database\\\" (if using sqlite)\\n\\nMake sure you have the proper permissions set when before attempting to access the application. \\n\\nReference: https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Default Credentials\"\n}\n[/block]\nOnce you have Solder configured, just access it at the url you set it up on and log in.\n\nThe default user information is:\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Credentials\",\n  \"body\": \"Email: admin@admin.com\\nPassword: admin\"\n}\n[/block]\nChange this information as soon as you log in!","excerpt":"Technic Solder is a server-side PHP application based on the Laravel Framework. Its main goal is to provide delta encoded files for the Technic Launcher to process. This can include any type of file. Another goal is to process file check-sums to ensure the receiver is obtaining unaltered files.","slug":"getting-started","type":"basic","title":"Getting Started"}

Getting Started

Technic Solder is a server-side PHP application based on the Laravel Framework. Its main goal is to provide delta encoded files for the Technic Launcher to process. This can include any type of file. Another goal is to process file check-sums to ensure the receiver is obtaining unaltered files.

[block:callout] { "type": "danger", "body": "**This application is intended for experienced system administrators and is not intended to be setup on a local home computer.**", "title": "Warning:" } [/block] [block:callout] { "type": "info", "body": "If you run into any issues during the setup process, check the [FAQ page](http://docs.solder.io/v0.7/docs/faq-frequently-asked-questions)" } [/block] Need help with Solder? Pop into our Solder [Discord](https://discord.gg/0XSjZibQg6yguy1x) chat channel! [block:api-header] { "type": "basic", "title": "Before You Begin" } [/block] You will need to setup your server with a proper software stack. Technic recommends a "LEMP" stack. This stands for Linux OS, (E)Nginx web server, MySQL database server, and dynamic content processor PHP. Here are some great guides from Digital Ocean. - Ubuntu 14.04: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04 - Debian 7: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-debian-7 - Arch Linux: https://www.digitalocean.com/community/tutorials/how-to-install-lemp-nginx-mysql-php-stack-on-arch-linux - CentOS 6: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-6 - CentOS 7: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7 [block:callout] { "type": "warning", "body": "Windows installation is not supported (No help will be provided.)", "title": "Warning:" } [/block] [block:api-header] { "type": "basic", "title": "Requirements" } [/block] - PHP 5.4+ - PHP MCrypt Extension - PHP Curl Extension - PHP CLI Extension - PHP5-SQLite if using default - Curl - Composer - PHP Dependency Manager [block:code] { "codes": [ { "code": "sudo apt-get install git php5 php5-cli php5-curl php5-mcrypt php5-mysql php5-apcu php5-fpm php5-sqlite", "language": "shell", "name": "Ubuntu/Debian" }, { "code": "sudo yum install git php5 php5-cli php5-curl php5-mcrypt php5-mysql php5-apcu php5-fpm", "language": "shell", "name": "RedHat/CentOS/Fedora" } ] } [/block] [block:callout] { "type": "warning", "title": "MCrypt", "body": "Make sure PHP MCrypt extension is enabled after you installed it.\n\n`mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/`\n`php5enmod mcrypt`\nsudo service php5-fpm restart\n`php -m | grep mcrypt`" } [/block] [block:api-header] { "type": "basic", "title": "Composer" } [/block] A new feature in Solder v0.7 is Composer. Composer is a tool for dependency management in PHP. It allows you to declare the dependent libraries your project needs and it will install them in your project for you. [block:callout] { "type": "info", "body": "When using the following guides, do not create your own composer.json file, or perform \"composer install\" or \"php composer.phar install\" commands. These are handled later in this Getting Started guide.", "title": "Note:" } [/block] - Linux/Unix/Mac OS X: https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx - Windows: https://getcomposer.org/doc/00-intro.md#installation-windows [block:callout] { "type": "info", "body": "Installing the program globally is recommended to ensure proper execution.", "title": "Note:" } [/block] Before using Composer make sure to check for updates. - If you installed Composer locally: [block:code] { "codes": [ { "code": "sudo php composer.phar self-update", "language": "shell", "name": "Local Composer" } ] } [/block] - If you installed it globally: [block:code] { "codes": [ { "code": "sudo composer self-update", "language": "shell", "name": "Global Composer" } ] } [/block] [block:api-header] { "type": "basic", "title": "General Setup" } [/block] You can setup Solder by cloning the GitHub repository and running a Composer command. Cloning the GitHub repository will create a folder called "TechnicSolder" in the directory where you ran the command. [block:callout] { "type": "warning", "body": "Please make sure you are running the git clone command where you want to Solder directory to be located. Copying the folder can break the GitHub link that provides Solder's ability to update" } [/block] [block:code] { "codes": [ { "code": "git clone https://github.com/TechnicPack/TechnicSolder.git", "language": "shell", "name": "HTTP (recommended)" } ] } [/block] [block:code] { "codes": [ { "code": "git clone git@github.com:TechnicPack/TechnicSolder.git", "language": "shell", "name": "SSH" } ] } [/block] [block:callout] { "type": "info", "title": "Note:", "body": "If you prefer the cloned directory to be named differently, append the name to the git command. (ex. `git clone git@github.com:TechnicPack/TechnicSolder.git <folder-name>`)" } [/block] [block:callout] { "type": "info", "body": "If you prefer to test dev changes, add `-b dev` to the clone command. This will clone the development branch instead of the master branch.", "title": "Note:" } [/block] Now install the application from the root of the solder folder. - If you installed Composer locally: [block:code] { "codes": [ { "code": "php composer.phar install --no-dev --no-interaction", "language": "text", "name": "Local Composer" } ] } [/block] - If you installed it globally: [block:code] { "codes": [ { "code": "composer install --no-dev --no-interaction", "language": "text", "name": "Global Composer" } ] } [/block] [block:callout] { "type": "info", "title": "Note:", "body": "If you cloned the development branch, you can remove the `--no-dev` argument to install development tools." } [/block] This will also copy `app/config-sample` to `app/config` and `app/database-sample/production.sqlite` to `app/database/production.sqlite` [block:api-header] { "type": "basic", "title": "Initial Configuration" } [/block] `app/config/solder.php` has 3 values that need to be filled in: * **repo_location:** This points to the location of your repo files either locally or remotely. If your Solder install is on the same box as your mod repository, you can fill in the absolute path to those files. This will greatly increase the speed in which md5's are calculated for your database. If your mod repository is hosted elsewhere, you can simply put the web accessible URL in for this value. Make sure to include a trailing slash in *both* cases. * **mirror_url:** The mirror url is the web accessible url to your mod repository. If you are using a URL for repo_location you can just fill in the same value here. * **md5filetimeout:** This is the amount of time Solder will wait before giving up trying to calculate the MD5 checksum. `app/config/database.php` is set to sqlite as default and pointed at a pre-migrated sqlite d file for out-of-box setup. `app/config/app.php` has a few values that will need to be adjusted: * **debug:** This enables the Laravel debugger for development purposes. Default is `false` * **url:** This is the public facing URL of your Solder application and is used by the application when auto-building URLs in the API and throughout the application. Default is `http://solder.app:8000` * **timezone: ** Sets the timezone for PHP date and date-time functions. Default is `EST` * **key: ** Is used by Solder for encrypting passwords, etc. This is auto-generated on `composer install`. Platform API Keys are now handled through the application itself. See "Configure Solder -> API Key Management" [block:api-header] { "type": "basic", "title": "Database Configuration" } [/block] Solder is set to use sqlite by default right out of the box. If you wish to use a different data store provider, modify the settings located in your `app/config/database.php` file. Its very easy to switch between data stores. You can do so by changing the 'default' key to the key from the array under "Database Connections" [block:code] { "codes": [ { "code": "\t/*\n\t|--------------------------------------------------------------------------\n\t| Default Database Connection Name\n\t|--------------------------------------------------------------------------\n\t|\n\t| Here you may specify which of the database connections below you wish\n\t| to use as your default connection for all database work. Of course\n\t| you may use many connections at once using the Database library.\n\t|\n\t*/\n\t\n\n\t'default' => 'mysql',\n\n\t/*\n\t|--------------------------------------------------------------------------\n\t| Database Connections\n\t|--------------------------------------------------------------------------\n\t|\n\t| Here are each of the database connections setup for your application.\n\t| Of course, examples of configuring each database platform that is\n\t| supported by Laravel is shown below to make development simple.\n\t|\n\t|\n\t| All database work in Laravel is done through the PHP PDO facilities\n\t| so make sure you have the driver for your particular database of\n\t| choice installed on your machine before you begin development.\n\t|\n\t*/\n\n\t'connections' => array(\n\n\t\t'sqlite' => array(\n\t\t\t'driver' => 'sqlite',\n\t\t\t'database' => __DIR__.'/../database/production.sqlite',\n\t\t\t'prefix' => '',\n\t\t),\n\n\t\t'mysql' => array(\n\t\t\t'driver' => 'mysql',\n\t\t\t'host' => 'localhost',\n\t\t\t'database' => 'solder',\n\t\t\t'username' => 'solder',\n\t\t\t'password' => 'solder',\n\t\t\t'charset' => 'utf8',\n\t\t\t'collation' => 'utf8_unicode_ci',\n\t\t\t'prefix' => '',\n\t\t),\n\n\t\t'pgsql' => array(\n\t\t\t'driver' => 'pgsql',\n\t\t\t'host' => 'localhost',\n\t\t\t'database' => 'forge',\n\t\t\t'username' => 'forge',\n\t\t\t'password' => '',\n\t\t\t'charset' => 'utf8',\n\t\t\t'prefix' => '',\n\t\t\t'schema' => 'public',\n\t\t),\n\n\t\t'sqlsrv' => array(\n\t\t\t'driver' => 'sqlsrv',\n\t\t\t'host' => 'localhost',\n\t\t\t'database' => 'database',\n\t\t\t'username' => 'root',\n\t\t\t'password' => '',\n\t\t\t'prefix' => '',\n\t\t),\n\n\t),\n", "language": "php", "name": "MySQL Example" }, { "code": "\t/*\n\t|--------------------------------------------------------------------------\n\t| Default Database Connection Name\n\t|--------------------------------------------------------------------------\n\t|\n\t| Here you may specify which of the database connections below you wish\n\t| to use as your default connection for all database work. Of course\n\t| you may use many connections at once using the Database library.\n\t|\n\t*/\n\t\n\n\t'default' => 'sqlite',\n\n\t/*\n\t|--------------------------------------------------------------------------\n\t| Database Connections\n\t|--------------------------------------------------------------------------\n\t|\n\t| Here are each of the database connections setup for your application.\n\t| Of course, examples of configuring each database platform that is\n\t| supported by Laravel is shown below to make development simple.\n\t|\n\t|\n\t| All database work in Laravel is done through the PHP PDO facilities\n\t| so make sure you have the driver for your particular database of\n\t| choice installed on your machine before you begin development.\n\t|\n\t*/\n\n\t'connections' => array(\n\n\t\t'sqlite' => array(\n\t\t\t'driver' => 'sqlite',\n\t\t\t'database' => __DIR__.'/../database/production.sqlite',\n\t\t\t'prefix' => '',\n\t\t),\n\n\t\t'mysql' => array(\n\t\t\t'driver' => 'mysql',\n\t\t\t'host' => 'localhost',\n\t\t\t'database' => 'solder',\n\t\t\t'username' => 'solder',\n\t\t\t'password' => 'solder',\n\t\t\t'charset' => 'utf8',\n\t\t\t'collation' => 'utf8_unicode_ci',\n\t\t\t'prefix' => '',\n\t\t),\n\n\t\t'pgsql' => array(\n\t\t\t'driver' => 'pgsql',\n\t\t\t'host' => 'localhost',\n\t\t\t'database' => 'forge',\n\t\t\t'username' => 'forge',\n\t\t\t'password' => '',\n\t\t\t'charset' => 'utf8',\n\t\t\t'prefix' => '',\n\t\t\t'schema' => 'public',\n\t\t),\n\n\t\t'sqlsrv' => array(\n\t\t\t'driver' => 'sqlsrv',\n\t\t\t'host' => 'localhost',\n\t\t\t'database' => 'database',\n\t\t\t'username' => 'root',\n\t\t\t'password' => '',\n\t\t\t'prefix' => '',\n\t\t),\n\n\t),\n", "language": "text", "name": "SQLite Example" } ] } [/block] Once your data store connection is setup and working, Solder has a built in migration tool that that creates all of the required tables and data required to get Solder up and running. `migrate::install` - sets up the initial migration table that keeps track of changes made to your data store structure. You will only execute this command once during initial data store setup. `migrate` - creates the tables and data based on what is defined in the migration table. As Solder updates and changes, you will use this command to pull in any changes made to Solder tables/data structure. [block:code] { "codes": [ { "code": "php artisan migrate:install\nphp artisan migrate", "language": "shell", "name": "Migrate examples" } ] } [/block] [block:callout] { "type": "warning", "body": "Solder's comes with a pre-migrated SQLite data store ready for out-of-the-box setup. There is no need to run the migrate commands if you are using the provided SQLite store" } [/block] [block:api-header] { "type": "basic", "title": "Web Server Configuration" } [/block] Your final step is to make sure your web server is configured properly to handle traffic to Solder and its php files. You should have already setup Nginx(or Apache) and PHP following the guides provided above. See the Example Web Server Configs page for examples in configuring your web server for Solder: http://docs.solder.io/v0.7/docs/example-web-server-configs [block:callout] { "type": "warning", "title": "File Permissions", "body": "Your web server requires read access to the entire Solder folder. It also requires read & write access to the following directories:\n\n\"/public\"\n\"/app/storage\"\n\"/app/database\" (if using sqlite)\n\nMake sure you have the proper permissions set when before attempting to access the application. \n\nReference: https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions" } [/block] [block:api-header] { "type": "basic", "title": "Default Credentials" } [/block] Once you have Solder configured, just access it at the url you set it up on and log in. The default user information is: [block:callout] { "type": "info", "title": "Credentials", "body": "Email: admin@admin.com\nPassword: admin" } [/block] Change this information as soon as you log in!