.. include:: ../Includes.txt .. _admin: ================== For Administrators ================== This chapter describes how to install and how to configure this extension within the settings module of your TYPO3 instance. .. important:: This extension cannot secure links to files that you include in CSS, PDF, ... files. .. _admin-installation: Installation ============ There are several ways to require and install this extension. We recommend getting this extension via `composer `__. .. _admin-installation-viaComposer: Via Composer ------------ If your TYPO3 instance is running in composer mode, you can simply require the extension by running: .. code-block:: bash composer req leuchtfeuer/secure-downloads:>=5.0 .. _admin-installation-viaExtensionManager: Via Extension Manager --------------------- Open the extension manager module of your TYPO3 instance and select "Get Extensions" in the select menu above the upload button. There you can search for `secure_downlaods` and simply install the extension. Please make sure you are using the latest version of the extension by updating the extension list before installing the Secure Downloads extension. .. _admin-installation-viaZipFile: Via ZIP File ------------ You need to download the Secure Downloads extension from the `TYPO3 Extension Repository `__ and upload the ZIP file to the extension manager of your TYPO3 instance and activate the extension afterwards. You can also download an archive from `GitHub `__ and put its content directly into the `typo3conf/ext` directory of your TYPO3 instance. But please keep in mind, that the name of the folder must be `secure_downloads` (the repository name will be default). .. _admin-bestPractices: Best Practices ============== You can configure this extension to fit your specific needs. However, here are some "best practices" that may help you when first using Secure Downloads: * Install this extension as described above * Enable the :ref:`create file storage ` option * Put your files into that storage If you need to secure files outside of that directory, you still can adapt the :ref:`admin-extensionConfiguration-securedDirs` and :ref:`admin-extensionConfiguration-securedFileTypes` options. .. figure:: ../Images/FileStorage.png :alt: The "Secure Downloads" file storage in the file list module :class: with-shadow All files of the newly create "Secure Downloads" file storage are protected by default. .. _admin-accessConfiguration: Access Configuration ==================== You need to secure all the directories and file types by your server configuration. This can be done with `.htaccess` files. You find some example `.htaccess` files below and in the `Resources/Private/Examples `__ directory of this extension. Furthermore, you find a working nginx.conf file for ddev boxes in the same directory. .. _admin-accessConfiguration-exampleConfiguration: Example Configuration --------------------- Please make sure to adapt the file match pattern as configured in :ref:`admin-extensionConfiguration-securedFiletypes`. .. code-block:: apache :caption: .htaccess deny # Apache 2.4 Require all denied # Apache 2.2 Order Allow,Deny Deny from all .. code-block:: apache :caption: .htaccess allow # Apache 2.4 Require all granted # Apache 2.2 Order Deny,Allow Allow from all .. code-block:: nginx :caption: nginx configuration # Deny specific files in secured folder location ~ fileadmin/secure/.*\.(?:[pP][dD][fF]|[jJ][pP][eE]?[gG]|[gG][iI][fF]|[pP][nN][gG]|[oO][dD][tT]|[pP][pP][tT][xX]?|[dD][oO][cC][xX]?|[xX][lL][sS][xX]?|[zZ][iI][pP]|[rR][aA][rR]|[tT][gG][zZ]|[tT][aA][rR]|[gG][zZ])$ { deny all; } # Alternative: deny all files in secured folder location ~ fileadmin/secure/ deny all; } # Some nginx configurations try to process media files directly. The secured uri path must be excluded from this rule # Media: images, icons, video, audio, HTC location ~ ^(?:fileadmin/|uploads/|_assets/|sdl/).+\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|webp|htc)$ { expires 1M; access_log off; add_header Cache-Control "public"; } .. toctree:: :maxdepth: 3 :hidden: ExtensionConfiguration/Index RegularExpressions/Index