{"__v":27,"_id":"559dbe8bd41e4e0d001583c9","category":{"__v":12,"_id":"559d8d96980b801700d5ec7e","pages":["559d9044ac6a3d2100e0a5c3","559dbe8bd41e4e0d001583c9","55c3d384afefb00d00727e97","55fc62332891ee1900e039aa","562276ef06481c0d00e5313a","562c2e6eff2da50d002c0ac5","5640ecf4a6a9e90d008d80e8","56ce135449abf10b0036a3a9","56ce160ae538330b0021ac39","56ce165249abf10b0036a3b3","56ce22c249abf10b0036a3e0","56cedc006c5d7a13005ee779"],"project":"552829408962f339009a678d","version":"552829408962f339009a6790","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-07-08T20:52:38.999Z","from_sync":false,"order":7,"slug":"actor-server","title":"Manual Server Installation"},"parentDoc":null,"project":"552829408962f339009a678d","user":"55282916d9e1db2d00cd923c","version":{"__v":26,"_id":"552829408962f339009a6790","project":"552829408962f339009a678d","createdAt":"2015-04-10T19:49:20.516Z","releaseDate":"2015-04-10T19:49:20.516Z","categories":["552829418962f339009a6791","55284ed68962f339009a67e1","55286c73391a362500d9b3f4","552918f6b316811900149f59","5529b255d739240d00a3483e","553287590a578a0d008d4ff5","55329385e7d1fa0d003fc946","5550b55200420e0d00d1312f","55525fca953c9c0d00f507d7","559199695631432f002d358a","559d8d96980b801700d5ec7e","55c5e833cccdeb2d004e24b9","55d76504f662951900fc0e7d","55ea213cc62aa02f008229cd","56157b750f5ed00d00483dd8","561981fbac0924170069f4e8","561b8b1ea430930d0037ea67","563417428b86331700b488ca","56cd785bface161300dae0ec","56cdcc6e70db8a15006395f4","56cdf1b749abf10b0036a34a","56cedc8ce50c9c1b00830423","56e97ba8d825061900d1ac83","570d505228e6900e00477229","573614ca2ab52e1700c8e851","57d556a2496a3117004d70cf"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-07-09T00:21:31.474Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Automatic Install for Ubuntu 14.04\"\n}\n[/block]\nYou can use following script to install Actor Server and it's dependencies:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"bash <(curl -s https://raw.githubusercontent.com/actorapp/actor-bootstrap/master/server/install-on-ubuntu.sh)\",\n      \"language\": \"shell\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"You still need to configure it!\",\n  \"body\": \"You still need to configure Actor Server after installation complete in order to make it work.\\nConfiguration described in section below.\"\n}\n[/block]\nAfter installation complete, you will be able to manage Actor Server as other services in Ubuntu:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"sudo service actor status # check actor server status\\nsudo service actor start # start actor server\\nsudo service actor stop # stop actor server\\nsudo service actor restart # check actor server status\\n\",\n      \"language\": \"shell\"\n    }\n  ]\n}\n[/block]\nWhen new release of Actor Server is out you can get update following way:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"sudo apt-get update\\nsudo apt-get install --only-upgrade actor\",\n      \"language\": \"shell\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Manual Install for any GNU/Linux\"\n}\n[/block]\nIf you are not running Ubuntu or want to perform manual installation follow next steps:\n\n# Step 1: Download and install Actor Server\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"wget https://github.com/actorapp/actor-platform/releases/download/server/v<version>/actor-<version>.zip\\nunzip actor-<version>.zip\\nln -snf actor-<version> actor\\ncd actor\",\n      \"language\": \"shell\",\n      \"name\": \"Generic Linux\"\n    },\n    {\n      \"code\": \"echo \\\"deb https://dl.bintray.com/actor/ubuntu trusty main\\\" | sudo tee -a /etc/apt/sources.list\\nsudo apt-get update\\nsudo apt-get install actor\",\n      \"language\": \"shell\",\n      \"name\": \"Ubuntu\"\n    }\n  ]\n}\n[/block]\n# Step 2: Run Actor Server in background\n\nYou can use `nohup` to run server in background, so process won't stop on ssh session termination\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"nohup bin/actor\",\n      \"language\": \"text\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Server configuration\"\n}\n[/block]\nIf you installed Actor Server via auto install script, or as debian package, your main configuration file is `/etc/actor/server.conf`. I advise you to use `/etc/actor/server.conf.example-minimal` as your config template.\n\nIn order to get running server you'll need to configure services and modules:\n* [Server keys configuration](doc:securing-server)\n* [Database configuration](doc:configure-database)\n* [File Storage configuration](doc:file-storage-configuration) \n* [Activation gate token](doc:sms-gate-token)\n* [Google push configuration](doc:google-push-configuration)\n* [Apple push configuration](doc:push-configuration)\n\nAfter you're done with configuration, your `server.conf` file should look following way:\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"This is only example\",\n  \"body\": \"Configuration values aren't real, and used only to show you an example of config file.\\nDon't ever copy values from this example.\"\n}\n[/block]\n```\nservices {\n  postgresql {\n    host: \"localhost\"\n    db: actor\n    user: actor\n    password: \"efd8f4afaad14d88a95f5925e677dbb2\"\n  }\n\n  actor-activation {\n    auth-token: \"640e3e75e9cb48178be59fb7cec36544eb89bf5\"\n  }\n\n  google {\n    push {\n      keys: [\n        {\n          project-id: 434361884547\n          key: \"AIzaSwtyC37QbL6n7iqTzhFQxqiC0g9LGWQUK4Z\"\n        }\n      ]\n    }\n  }\n}\n\nhttp {\n  base-uri: \"http://matryoshka.im:9090\"\n}\n\nmodules {\n  security {\n    server-keys: [\n      {\n        public: \"/usr/share/actor/keys/actor-key.pub\"\n        private: \"/usr/share/actor/keys/actor-key.private\"\n      }\n    ]\n  }\n}\n\nsecret: \"4170465f0ddf4dc798dcabb47712a14d0eeb192b2857478787ec231e078f7dbf\"\nproject-name: \"Matryoshka messenger\"\npublic-endpoints: [\n  \"ws://matryoshka.im:9090\",\n  \"tcp://matryoshka.im:9070\"\n]\n``` \n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"After you done with configuration - restart Actor Server, so changes will apply.\",\n  \"title\": \"Changes applied after Actor Server restart!\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Next steps\"\n}\n[/block]\nThere are a lot of things you can configure and customize in Actor Server. You will probably interested in following topics:\n* [Memory settings](doc:memory-settings)\n* [Group invites](doc:group-invites)","excerpt":"Introduction to Actor Server","slug":"server-install","type":"basic","title":"Installation"}

Installation

Introduction to Actor Server

[block:api-header] { "type": "basic", "title": "Automatic Install for Ubuntu 14.04" } [/block] You can use following script to install Actor Server and it's dependencies: [block:code] { "codes": [ { "code": "bash <(curl -s https://raw.githubusercontent.com/actorapp/actor-bootstrap/master/server/install-on-ubuntu.sh)", "language": "shell" } ] } [/block] [block:callout] { "type": "warning", "title": "You still need to configure it!", "body": "You still need to configure Actor Server after installation complete in order to make it work.\nConfiguration described in section below." } [/block] After installation complete, you will be able to manage Actor Server as other services in Ubuntu: [block:code] { "codes": [ { "code": "sudo service actor status # check actor server status\nsudo service actor start # start actor server\nsudo service actor stop # stop actor server\nsudo service actor restart # check actor server status\n", "language": "shell" } ] } [/block] When new release of Actor Server is out you can get update following way: [block:code] { "codes": [ { "code": "sudo apt-get update\nsudo apt-get install --only-upgrade actor", "language": "shell" } ] } [/block] [block:api-header] { "type": "basic", "title": "Manual Install for any GNU/Linux" } [/block] If you are not running Ubuntu or want to perform manual installation follow next steps: # Step 1: Download and install Actor Server [block:code] { "codes": [ { "code": "wget https://github.com/actorapp/actor-platform/releases/download/server/v<version>/actor-<version>.zip\nunzip actor-<version>.zip\nln -snf actor-<version> actor\ncd actor", "language": "shell", "name": "Generic Linux" }, { "code": "echo \"deb https://dl.bintray.com/actor/ubuntu trusty main\" | sudo tee -a /etc/apt/sources.list\nsudo apt-get update\nsudo apt-get install actor", "language": "shell", "name": "Ubuntu" } ] } [/block] # Step 2: Run Actor Server in background You can use `nohup` to run server in background, so process won't stop on ssh session termination [block:code] { "codes": [ { "code": "nohup bin/actor", "language": "text" } ] } [/block] [block:api-header] { "type": "basic", "title": "Server configuration" } [/block] If you installed Actor Server via auto install script, or as debian package, your main configuration file is `/etc/actor/server.conf`. I advise you to use `/etc/actor/server.conf.example-minimal` as your config template. In order to get running server you'll need to configure services and modules: * [Server keys configuration](doc:securing-server) * [Database configuration](doc:configure-database) * [File Storage configuration](doc:file-storage-configuration) * [Activation gate token](doc:sms-gate-token) * [Google push configuration](doc:google-push-configuration) * [Apple push configuration](doc:push-configuration) After you're done with configuration, your `server.conf` file should look following way: [block:callout] { "type": "danger", "title": "This is only example", "body": "Configuration values aren't real, and used only to show you an example of config file.\nDon't ever copy values from this example." } [/block] ``` services { postgresql { host: "localhost" db: actor user: actor password: "efd8f4afaad14d88a95f5925e677dbb2" } actor-activation { auth-token: "640e3e75e9cb48178be59fb7cec36544eb89bf5" } google { push { keys: [ { project-id: 434361884547 key: "AIzaSwtyC37QbL6n7iqTzhFQxqiC0g9LGWQUK4Z" } ] } } } http { base-uri: "http://matryoshka.im:9090" } modules { security { server-keys: [ { public: "/usr/share/actor/keys/actor-key.pub" private: "/usr/share/actor/keys/actor-key.private" } ] } } secret: "4170465f0ddf4dc798dcabb47712a14d0eeb192b2857478787ec231e078f7dbf" project-name: "Matryoshka messenger" public-endpoints: [ "ws://matryoshka.im:9090", "tcp://matryoshka.im:9070" ] ``` [block:callout] { "type": "warning", "body": "After you done with configuration - restart Actor Server, so changes will apply.", "title": "Changes applied after Actor Server restart!" } [/block] [block:api-header] { "type": "basic", "title": "Next steps" } [/block] There are a lot of things you can configure and customize in Actor Server. You will probably interested in following topics: * [Memory settings](doc:memory-settings) * [Group invites](doc:group-invites)