{"id":19857933,"url":"https://github.com/kontalk/xmppserver-docker","last_synced_at":"2025-05-02T02:30:42.520Z","repository":{"id":78198218,"uuid":"93655313","full_name":"kontalk/xmppserver-docker","owner":"kontalk","description":"Kontalk server Docker images","archived":false,"fork":false,"pushed_at":"2021-09-29T19:48:25.000Z","size":82,"stargazers_count":28,"open_issues_count":10,"forks_count":14,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-06T21:08:23.579Z","etag":null,"topics":["docker","kontalk","server","xmpp"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kontalk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-07T16:15:30.000Z","updated_at":"2023-01-26T23:52:00.000Z","dependencies_parsed_at":"2023-02-26T14:46:08.720Z","dependency_job_id":null,"html_url":"https://github.com/kontalk/xmppserver-docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kontalk%2Fxmppserver-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kontalk%2Fxmppserver-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kontalk%2Fxmppserver-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kontalk%2Fxmppserver-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kontalk","download_url":"https://codeload.github.com/kontalk/xmppserver-docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251972425,"owners_count":21673600,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","kontalk","server","xmpp"],"created_at":"2024-11-12T14:20:19.382Z","updated_at":"2025-05-02T02:30:42.514Z","avatar_url":"https://github.com/kontalk.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Kontalk server for Docker\n=========================\n\nHere you may find a few scripts and files to build a Kontalk container\n(actually 3 containers) for running a Kontalk server.\n\n## Requirements\n\n* Recent 64-bit Linux distro (we suggest Debian)\n* Docker\n* Docker Compose\n* git\n\n## Setting up environment\n\nSetup a new user account (or use an existing one, root is not needed and not recommended)\non a system with Docker installed and enabled. The user account should be part of the docker\ngroup so it will be able to use Docker.\n\nClone this repository in any location (we recommend the home directory of your user account):\n\n```bash\ngit clone https://github.com/kontalk/xmppserver-docker.git kontalk-server\ncd kontalk-server\n```\n\n## Configure the containers\n\nA setup script can be used to generate a local configuration:\n\n```bash\n./kontalk-setup\n```\n\nAnswer all questions or skip them by pressing enter: the default value will be used (unless specified otherwise).\n\n```\nPlease give a name to your new Kontalk server instance.\nKontalk instance name [prime]:\n\nKontalk is available in the following branches:\n  master: bleeding-edge, latest modifications. Possibly unstable. Use for development only.\n  staging: used in Kontalk test server. It should have the latest features with a certain degree of stability.\n  production: used in Kontalk production server. Stable and tested.\nYou can also specify a version tag.\n\nKontalk version/branch to build [staging]:\nXMPP service name [prime.kontalk.net]:\nXMPP plain listen port [5222]:\nXMPP secure listen port [5223]:\nXMPP s2s listen port [5269]:\nMySQL root password [root]:\nMySQL kontalk password [kontalk]:\nMySQL time zone [Europe/Rome]:\n\nThe HTTP file upload service is used by clients to upload and download media.\nIt should be exposed directly or better through a reverse proxy (e.g. Nginx).\nWe will ask you for the listen port exposed to the host system and the URLs seen by clients.\nNote that those URLs should be available from the outside, i.e. from the Internet\n\nHTTP file upload service listen port [8828]:\nHTTP file upload URL [https://10.0.2.2:8828/]:\nHTTP file download URL [https://10.0.2.2:8828/]:\nMax HTTP upload file size [20971520]:\n\nYou can now build the images by running ./launcher bootstrap\n```\n\nA file called `local.properties` will be created. Please note that any modification\nto this file will require a rebuild ([see below](#upgraderebuild-the-containers)).\nIf all went ok, you can now do the bootstrap:\n\n```bash\n./launcher bootstrap\n```\n\nThis should take some time: it will build the images and setup the containers.\n\nAt this point, if you want to just run a development server for tests, just\ngo straight below to [the actual startup](#start-the-containers).\n\n## Setting up the server\n\nA more serious environment will require prior creation of a SSL certificate and\na GPG key for the server. For the containers to use them, certificate and keys must\nbe located in:\n\n* `config/server-private.key`: GPG server private key (**must not be password-protected!**)\n* `config/server-public.key`: GPG server public key\n* `config/privatekey.pem`: SSL private key\n* `config/certificate.pem`: SSL certificate\n* `config/cachain.pem`: SSL certificate authorities chain (optional)\n\nYour setup will also surely include some tweaking on the server configuration.\nYou can edit the default configuration file `config/init.properties.in`.\nThe local server tutorial can be used to configure some of the parameters,\ne.g. [registration providers](//github.com/kontalk/tigase-kontalk/blob/master/docs/local-server-howto.md#registration) or\n[push notifications](//github.com/kontalk/tigase-kontalk/blob/master/docs/local-server-howto.md#push-notifications). A quick\nreference to Tigase parameters can be found [here](http://docs.tigase.org/tigase-server/7.1.0/Properties_Guide/html/),\nwhile the administration guide is [here](http://docs.tigase.org/tigase-server/7.1.0/Administration_Guide/html/).\nWe strongly recommend giving it a look to know if the default configuration suits your needs.\n\n\u003e When configuring Tigase init.properties.in file, leave placeholders for\nvariables untouched (e.g. `{{ .Env.FINGERPRINT }}`): they will be replaced\nautomatically.\n\nAnother file to look into would be `config/tigase.conf`. Some environment variables are defined,\nyou should especially check JAVA\\_OPTIONS which contains the JVM parameters (heap memory, GC parameters, etc.).\nNote that despite the extension, it's a simple shell script file sourced by the server startup script,\nso bash syntax applies.\n\n### Trust store for outgoing SSL connection\n\nYou can use a custom trust store for outgoing SSL connections (e.g. from registration or push providers). The launcher\nscript will produce one automatically for you. Just create a directory called `trustedcerts` and put one certificate\nper file in there. Be sure the files end in `.cer`. Then update JAVA\\_OPTIONS in `config/tigase.conf` and add this at the end:\n\n```\n -Djavax.net.ssl.trustStore=truststore -Djavax.net.ssl.trustStorePassword=truststore\n```\n\n## Start the containers\n\nRun this command:\n\n```bash\n./launcher start\n```\n\nThe script will start 3 containers in the background:\n\n* **xmpp**: the actual [Tigase XMPP server](http://tigase.net/content/tigase-xmpp-server)\n* **db**: MySQL database server\n* **httpupload**: the HTTP upload component needed to upload media (pictures, audio files, etc.)\n\nThe actual container names will be prefixed with the instance name given to `kontalk-setup`.\nFor example, if you typed \"prime\" as the instance name, containers will be called prime\\_xmpp, prime\\_db, prime\\_httpupload.\n\nThe instance name can be changed in local.properties (INSTANCE\\_NAME), but before doing that you\nmust destroy the old containers (`./launcher destroy`), alter INSTANCE\\_NAME and then run `./launcher bootstrap`.\n\nThe launcher script has some other useful commands that can be used. You can see\na quick help by launching it without any arguments.\n\n## Upgrade/rebuild the containers\n\nYou must rebuild the containers if you:\n\n* modified local.properties (run `./launcher rebuild`)\n* want to upgrade the Kontalk server (meaning modifying the VERSION property in local.properties)\n\nYou don't need to rebuild if you modify `config/init.properties.in`, but you will need to restart it:\n\n```bash\n./launcher restart\n```\n\n## Help and support\n\nYou can ask for further information on how to deploy a Kontalk server and share your experiences on our community forum:\nhttps://forum.kontalk.org/c/support/server\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkontalk%2Fxmppserver-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkontalk%2Fxmppserver-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkontalk%2Fxmppserver-docker/lists"}