% Installation Guide ## Installing Tiny Tiny RSS for the first time As of 2020, the recommended way to deploy tt-rss is via Docker. Unless you have very specific needs which require direct installation on the host, consider using docker-compose setup described below: ### Installing in a Docker container Official dockerized setup uses [docker-compose](https://docs.docker.com/compose/). There are two variants available: #### 1. Dynamic: tt-rss is automatically updated on container (re)start Use this if you want to always run latest tt-rss code. → [Installation guide (dynamic)](https://git.tt-rss.org/fox/ttrss-docker-compose/src/master/README.md) #### 2. Static: uses pre-built images provided via Docker Hub This seems to be a more commonly used pattern for Docker containers: images (including tt-rss source code) are built automatically and then pushed to [Docker Hub](https://hub.docker.com/u/cthulhoo). Use this if you want manual control over tt-rss updates or an ability to revert to an older prebuilt image. → [Installation guide (static)](https://git.tt-rss.org/fox/ttrss-docker-compose/src/static-dockerhub/README.md) ----- ### Installing on a host machine (not recommended) Before you begin, you’ll need to verify the following: - You need access to a hosting/VDS running a http server and a database (mysql or postgresql). Your database should properly support unicode. - You will need to acquire database credentials, i.e. login, password, and a database name. If you don’t have a database already created, you need to do so before installing. Tiny Tiny RSS can coexist with other applications in a shared database, creating a dedicated one is not necessary. - Your http server should be running PHP version 5.6 or newer. Enabling PHP [opcode cache](https://www.google.com/search?q=php+enable+opcode+cache) is recommended. See also: [PhpCompatibilityNotes](wiki/PhpCompatibilityNotes). - This manual assumes you have basic knowledge of [Git SCM](https://www.google.com/search?q=git+howto). #### Host installation overview - Clone tt-rss repository using Git. Always use latest Git code from master branch. ``` git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss ``` Alternatively, you can clone the repository on your local machine and upload files to the server using FTP or any other means available to you. - Verify that you can open http://your.site/tt-rss/install/ - Proceed with the installation using the easy installer. It will ask your database credentials and a full URL on which tt-rss will be accessed, for example http://your.site/tt-rss/install/. It is required that the URL is an externally accessible one (if any), don’t use localhost there. If you are deploying tt-rss on LAN, you can disregard this requirement. - Easy installer will generate config.php for you, after you have entered your database credentials and initialized tt-rss database. You will need to either copy text from the installer and paste it into config.php on the server, or, if possible, the installer will be able to do it for you automatically. - It is suggested that you read through config.php to see if you need to enable additional functionality or change default configuration values. - After finishing with the installer, open your Tiny Tiny RSS installation at http://yoursite/tt-rss/ and login with default credentials (username: admin, password: password). - **Open preferences and change your password!** - You will also need to decide on the method tt-rss uses to update feeds. This is a separate topic, outlined in [UpdatingFeeds](wiki/UpdatingFeeds). - If all went well, you may proceed to use tt-rss normally. Create a separate non-admin user, login under it, and start importing your feeds, subscribing, and configure it to your taste. Don’t forget to read [UpdatingFeeds](wiki/UpdatingFeeds) otherwise your feeds won’t update automatically. See also: [SecuringCacheDirectories](wiki/SecuringCacheDirectories) #### Take a look at available plugins There are many plugins written for tt-rss. You can see the list here: [Plugins](wiki/Plugins). ----- ## Upgrading Tiny Tiny RSS It is highly recommended to temporarily disable any third party themes and user CSS customizations before upgrading. Don’t forget to empty your browser cache if you experience weird bugs right after upgrading. Note that you should upgrade to the latest version available, installing intermediate releases sequentially is not needed. ### Upgrading with Git #### Update base tt-rss code Change to tt-rss directory on your server and run ``git pull origin master``. #### Merge new config.php directives and/or update the database After the files have been upgraded to newer versions, open tt-rss. It may complain about missing directives in config.php. If that happens, you will need to either merge new stuff from config.php-dist to your config.php or remove config.php and rerun the installer. **DO NOT INITIALIZE DATABASE when upgrading. This will remove all your tt-rss data.** Afterwards, you may be redirected to the database updater. Log in with admin credentials and follow instructions. Finishing that, you should be able to use tt-rss normally by logging in with your normal account. #### Post-upgrade tasks 1. You might need to clear your browser cache if you experience CSS or script-related issues, older scripts might have stuck in it. 2. Do not copy cache directories from your old tt-rss version, it is unnecessary and potentially creates problems if you don’t preserve file modification times. 3. If you are using an accelerator like php-apc you might need to restart apache if older cached versions of PHP files got stuck in cache (this happens rarely, but is a possibility).