From 2164bd85e01e4bc3157c180bc96868a907f1ec82 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Sun, 30 May 2021 12:34:29 +0200 Subject: [PATCH] First commit --- LICENSE | 674 +++++++++++++++++++++++++++++++++ README.md | 59 +++ README_fr.md | 60 +++ check_process | 19 + conf/arm64.src | 6 + conf/armv6.src | 6 + conf/armv7.src | 6 + conf/config.default.toml | 102 +++++ conf/nginx.conf | 20 + conf/systemd.service | 17 + conf/x86-64.src | 6 + doc/screenshots/screenshot.png | Bin 0 -> 181152 bytes manifest.json | 51 +++ scripts/_common.sh | 40 ++ scripts/backup | 59 +++ scripts/change_url | 125 ++++++ scripts/install | 147 +++++++ scripts/remove | 74 ++++ scripts/restore | 108 ++++++ scripts/upgrade | 140 +++++++ 20 files changed, 1719 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 README_fr.md create mode 100644 check_process create mode 100644 conf/arm64.src create mode 100644 conf/armv6.src create mode 100644 conf/armv7.src create mode 100644 conf/config.default.toml create mode 100644 conf/nginx.conf create mode 100644 conf/systemd.service create mode 100644 conf/x86-64.src create mode 100644 doc/screenshots/screenshot.png create mode 100644 manifest.json create mode 100644 scripts/_common.sh create mode 100644 scripts/backup create mode 100644 scripts/change_url create mode 100644 scripts/install create mode 100644 scripts/remove create mode 100644 scripts/restore create mode 100644 scripts/upgrade diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..fbf16e9 --- /dev/null +++ b/README.md @@ -0,0 +1,59 @@ +# Dispatch for YunoHost + +[![Integration level](https://dash.yunohost.org/integration/dispatch.svg)](https://dash.yunohost.org/appci/app/dispatch) ![](https://ci-apps.yunohost.org/ci/badges/navidrome.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/dispatch.maintain.svg) +[![Install Dispatch with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=dispatch) + +*[Lire ce readme en français.](./README_fr.md)* + +> *This package allows you to install Dispatch quickly and simply on a YunoHost server. +If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* + +## Overview + +**Shipped version:** 0.7 + +## Screenshots + +![](https://camo.githubusercontent.com/335eb6270d56b9218d3b0fb21f3779f36604a918/68747470733a2f2f6b686c69656e672e636f6d2f64697370617463682e706e673f31) + +## Demo + +* [Official demo](https://dispatch.khlieng.com/connect) + +## Configuration + +## Documentation + + * Official documentation: + * YunoHost documentation: https://yunohost.org/en/app_dispatch + +## YunoHost specific features + +#### Multi-user support + +* Is LDAP supported? **No** +* Can the app be used by multiple users? **Yes** + +#### Supported architectures + +* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/dispatch.svg)](https://ci-apps.yunohost.org/ci/apps/dispatch/) +* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/dispatch.svg)](https://ci-apps-arm.yunohost.org/ci/apps/dispatch/) + +## Links + + * Report a bug: https://github.com/YunoHost-Apps/dispatch_ynh/issues + * Upstream app repository: https://github.com/khlieng/dispatch + * YunoHost website: https://yunohost.org/ + +--- + +## Developer info + +Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/dispatch_ynh/tree/testing). + +To try the testing branch, please proceed like that. +``` +sudo yunohost app install https://github.com/YunoHost-Apps/dispatch_ynh/tree/testing --debug +or +sudo yunohost app upgrade dispatch -u https://github.com/YunoHost-Apps/dispatch_ynh/tree/testing --debug +``` diff --git a/README_fr.md b/README_fr.md new file mode 100644 index 0000000..b5202bb --- /dev/null +++ b/README_fr.md @@ -0,0 +1,60 @@ +# Dispatch pour YunoHost + +[![Niveau d'intégration](https://dash.yunohost.org/integration/dispatch.svg)](https://dash.yunohost.org/appci/app/dispatch) ![](https://ci-apps.yunohost.org/ci/badges/dispatch.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/dispatch.maintain.svg) +[![Installer Dispatch avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=dispatch) + +*[Read this readme in english.](./README.md)* + +> *Ce package vous permet d'installer Dispatch rapidement et simplement sur un serveur YunoHost. +Si vous n'avez pas YunoHost, consultez [le guide](https://yunohost.org/#/install) pour apprendre comment l'installer.* + +## Vue d'ensemble + +**Version incluse :** 0.7 + +## Captures d'écran + +![](https://camo.githubusercontent.com/335eb6270d56b9218d3b0fb21f3779f36604a918/68747470733a2f2f6b686c69656e672e636f6d2f64697370617463682e706e673f31) + +## Démo + +* [Démo officielle](https://dispatch.khlieng.com/connect) + +## Configuration + +## Documentation + + * Documentation officielle : + * Documentation YunoHost : https://yunohost.org/fr/app_dispatch + +## Caractéristiques spécifiques YunoHost + +#### Support multi-utilisateur + +* L'authentification LDAP est-elle prise en charge ? **Non** +* L'application peut-elle être utilisée par plusieurs utilisateurs ? **Oui** + +#### Architectures supportées + +* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/dispatch.svg)](https://ci-apps.yunohost.org/ci/apps/dispatch/) +* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/dispatch.svg)](https://ci-apps-arm.yunohost.org/ci/apps/dispatch/) + +## Liens + + * Signaler un bug : https://github.com/YunoHost-Apps/navidrome_ynh/issues + * Site de l'application : https://dispatch.khlieng.com/connect + * Dépôt de l'application principale : https://github.com/khlieng/dispatch + * Site web YunoHost : https://yunohost.org/ + +--- + +## Informations pour les développeurs + +Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/dispatch_ynh/tree/testing). + +Pour essayer la branche testing, procédez comme suit. +``` +sudo yunohost app install https://github.com/YunoHost-Apps/dispatch_ynh/tree/testing --debug +ou +sudo yunohost app upgrade dispatch -u https://github.com/YunoHost-Apps/dispatch_ynh/tree/testing --debug +``` diff --git a/check_process b/check_process new file mode 100644 index 0000000..43e7848 --- /dev/null +++ b/check_process @@ -0,0 +1,19 @@ +;; Test complet + ; Manifest + domain="domain.tld" + path="/" + is_public=1 + ; Checks + pkg_linter=1 + setup_sub_dir=0 + setup_root=1 + setup_nourl=0 + setup_private=1 + setup_public=1 + upgrade=1 + backup_restore=1 + multi_instance=0 + change_url=1 +;;; Options +Email= +Notification=none \ No newline at end of file diff --git a/conf/arm64.src b/conf/arm64.src new file mode 100644 index 0000000..3fa311e --- /dev/null +++ b/conf/arm64.src @@ -0,0 +1,6 @@ +SOURCE_URL=https://github.com/khlieng/dispatch/releases/download/v0.7/dispatch_0.7_linux_arm64.tar.gz +SOURCE_SUM= +SOURCE_SUM_PRG=sha256sum +SOURCE_FORMAT=tar.gz +SOURCE_IN_SUBDIR=false +SOURCE_FILENAME= \ No newline at end of file diff --git a/conf/armv6.src b/conf/armv6.src new file mode 100644 index 0000000..025618d --- /dev/null +++ b/conf/armv6.src @@ -0,0 +1,6 @@ +SOURCE_URL=https://github.com/khlieng/dispatch/releases/download/v0.7/dispatch_0.7_linux_armv6.tar.gz +SOURCE_SUM= +SOURCE_SUM_PRG=sha256sum +SOURCE_FORMAT=tar.gz +SOURCE_IN_SUBDIR=false +SOURCE_FILENAME= \ No newline at end of file diff --git a/conf/armv7.src b/conf/armv7.src new file mode 100644 index 0000000..d45d5c8 --- /dev/null +++ b/conf/armv7.src @@ -0,0 +1,6 @@ +SOURCE_URL=https://github.com/khlieng/dispatch/releases/download/v0.7/dispatch_0.7_linux_armv7.tar.gz +SOURCE_SUM=07c678c29dea633fe7e372c48cebe1876bfc43b0f7abbd88a55318587994750c +SOURCE_SUM_PRG=sha256sum +SOURCE_FORMAT=tar.gz +SOURCE_IN_SUBDIR=false +SOURCE_FILENAME= \ No newline at end of file diff --git a/conf/config.default.toml b/conf/config.default.toml new file mode 100644 index 0000000..0b30d7b --- /dev/null +++ b/conf/config.default.toml @@ -0,0 +1,102 @@ +# IP address to listen on, leave empty to listen on anything +address = "127.0.0.1" +port = __PORT__ +# Run ident daemon on port 113 +identd = true +# Hex encode the users IP and use it as the ident +hexIP = false +# Automatically reply to common CTCP messages +auto_ctcp = true +# Verify the certificate chain presented by the IRC server, if this check fails +# the user will be able to choose to still connect +verify_certificates = true + +# Defaults for the client connect form +[defaults] +name = "libera" +host = "irc.libera.chat" +port = 6697 +channels = [ + "#yunohost" +] +server_password = "" +ssl = true +# Only allow a nick to be filled in +readonly = false +# Show server and channel info when readonly is enabled +show_details = false + +[https] +enabled = false +port = 443 +# Path to your cert and private key if you are not using +# the Let's Encrypt integration +cert = "" +key = "" + +[letsencrypt] +# Your domain or subdomain, if not set a certificate will be +# fetched for whatever domain dispatch gets accessed through +domain = "" +# An email address lets you recover your accounts private key +email = "" + +# Not implemented +[auth] +# Allow usage without being logged in, all channels and settings get +# transferred when logging in or registering +anonymous = true +# Enable username/password login +login = true +# Enable username/password registration +registration = true + +[auth.providers.github] +key = "" +secret = "" + +[auth.providers.facebook] +key = "" +secret = "" + +[auth.providers.google] +key = "" +secret = "" + +[auth.providers.twitter] +key = "" +secret = "" + +[dcc] +# Receive files through DCC, the user gets to choose if they want to accept the file, +# the file download then gets proxied to the user +enabled = true + +[dcc.autoget] +# Instead of proxying the file download directly to the user, dispatch automatically downloads +# DCC files and sends a download link to the user once its done +enabled = false +# Delete the file after the user has downloaded it once +delete = true +# Delete the file after a certain time period of inactivity, not implemented yet +delete_after = "30m" + +[proxy] +# Dispatch will make all outgoing connections through the specified proxy when enabled +enabled = false +protocol = "socks5" +host = "127.0.0.1" +port = 1080 +username = "" +password = "" + +# HTTP Strict-Transport-Security +[https.hsts] +enabled = false +max_age = 31536000 +include_subdomains = false +preload = false + +# Add your own HTTP headers to the index page +[headers] +# X-Example = "Rainbows" diff --git a/conf/nginx.conf b/conf/nginx.conf new file mode 100644 index 0000000..24edbcb --- /dev/null +++ b/conf/nginx.conf @@ -0,0 +1,20 @@ +location / { + + # Force usage of https + if ($scheme = http) { + rewrite ^ https://$server_name$request_uri? permanent; + } + + proxy_pass http://127.0.0.1:__PORT__/; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + +} diff --git a/conf/systemd.service b/conf/systemd.service new file mode 100644 index 0000000..dc1e7de --- /dev/null +++ b/conf/systemd.service @@ -0,0 +1,17 @@ +[Unit] +Description=Dispatch IRC client +Wants=network-online.target +After=network-online.target + +[Service] +Type=simple +User=__APP__ +Group=nogroup +ExecStart=__FINALPATH__/dispatch +Restart=on-failure +RestartSec=5 +StartLimitInterval=60s +StartLimitBurst=3 + +[Install] +WantedBy=default.target diff --git a/conf/x86-64.src b/conf/x86-64.src new file mode 100644 index 0000000..e3ff6ad --- /dev/null +++ b/conf/x86-64.src @@ -0,0 +1,6 @@ +SOURCE_URL=https://github.com/khlieng/dispatch/releases/download/v0.7/dispatch_0.7_linux_x64.tar.gz +SOURCE_SUM=7a94cb965de08919a32523116265e7facb69deaa6cfc916adbb34f4083f9e1d9 +SOURCE_SUM_PRG=sha256sum +SOURCE_FORMAT=tar.gz +SOURCE_IN_SUBDIR=false +SOURCE_FILENAME= \ No newline at end of file diff --git a/doc/screenshots/screenshot.png b/doc/screenshots/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..21686f7a0e8c5101fc512af86048507bfbd6cdec GIT binary patch literal 181152 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 4.2.4" + }, + "multi_instance": false, + "services": [ + "nginx" + ], + "arguments": { + "install" : [ + { + "name": "domain", + "type": "domain", + "example": "domain.org" + }, + { + "name": "path", + "type": "path", + "example": "/dispatch", + "default": "/" + }, + { + "name": "is_public", + "type": "boolean", + "help": { + "en": "If enabled, Dispatch will be accessible by people who do not have an account. This can be changed later via the webadmin.", + "fr": "Si cette case est cochée, Dispatch sera accessible aux personnes n’ayant pas de compte. Vous pourrez changer ceci plus tard via la webadmin." + }, + "default": true + } + ] + } +} diff --git a/scripts/_common.sh b/scripts/_common.sh new file mode 100644 index 0000000..9badc39 --- /dev/null +++ b/scripts/_common.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +#================================================= +# COMMON VARIABLES +#================================================= + +#================================================= +# PERSONAL HELPERS +#================================================= + +#================================================= +# EXPERIMENTAL HELPERS +#================================================= + +#================================================= +# FUTURE OFFICIAL HELPERS +#================================================= + +# Check the architecture +# +# example: architecture=$(ynh_detect_arch) +# +# usage: ynh_detect_arch +# +# Requires YunoHost version 2.2.4 or higher. +ynh_detect_arch(){ + local architecture + if [ -n "$(uname -m | grep arm64)" ] || [ -n "$(uname -m | grep aarch64)" ]; then + architecture="arm64" + elif [ -n "$(uname -m | grep 64)" ]; then + architecture="x86-64" + elif [ -n "$(uname -m | grep armv7)" ]; then + architecture="armv7" + elif [ -n "$(uname -m | grep armv6)" ]; then + architecture="armv6" + else + architecture="unknown" + fi + echo $architecture +} diff --git a/scripts/backup b/scripts/backup new file mode 100644 index 0000000..11f1bbb --- /dev/null +++ b/scripts/backup @@ -0,0 +1,59 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source ../settings/scripts/_common.sh +source /usr/share/yunohost/helpers + +#================================================= +# MANAGE SCRIPT FAILURE +#================================================= + +ynh_clean_setup () { + ynh_clean_check_starting +} +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors + +#================================================= +# LOAD SETTINGS +#================================================= +ynh_print_info --message="Loading installation settings..." + +app=$YNH_APP_INSTANCE_NAME + +final_path=$(ynh_app_setting_get --app=$app --key=final_path) +domain=$(ynh_app_setting_get --app=$app --key=domain) + +#================================================= +# DECLARE DATA AND CONF FILES TO BACKUP +#================================================= +ynh_print_info --message="Declaring files to be backed up..." + +#================================================= +# BACKUP THE APP MAIN DIR +#================================================= + +ynh_backup --src_path="$final_path" + +#================================================= +# BACKUP THE NGINX CONFIGURATION +#================================================= + +ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf" + +#================================================= +# BACKUP SYSTEMD +#================================================= + +ynh_backup --src_path="/etc/systemd/system/$app.service" + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)." diff --git a/scripts/change_url b/scripts/change_url new file mode 100644 index 0000000..7952050 --- /dev/null +++ b/scripts/change_url @@ -0,0 +1,125 @@ +#!/bin/bash + +#================================================= +# GENERIC STARTING +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# RETRIEVE ARGUMENTS +#================================================= + +old_domain=$YNH_APP_OLD_DOMAIN +old_path=$YNH_APP_OLD_PATH + +new_domain=$YNH_APP_NEW_DOMAIN +new_path="/" + +app=$YNH_APP_INSTANCE_NAME + +#================================================= +# LOAD SETTINGS +#================================================= +ynh_script_progression --message="Loading installation settings..." --weight=1 + +# Needed for helper "ynh_add_nginx_config" +final_path=$(ynh_app_setting_get --app=$app --key=final_path) +port=$(ynh_app_setting_get --app=$app --key=port) + +#================================================= +# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP +#================================================= +ynh_script_progression --message="Backing up $app before changing its URL (may take a while)..." --weight=1 + +# Backup the current version of the app +ynh_backup_before_upgrade +ynh_clean_setup () { + # Remove the new domain config file, the remove script won't do it as it doesn't know yet its location. + ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" + + # restore it if the upgrade fails + ynh_restore_upgradebackup +} +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors + +#================================================= +# CHECK WHICH PARTS SHOULD BE CHANGED +#================================================= + +change_domain=0 +if [ "$old_domain" != "$new_domain" ] +then + change_domain=1 +fi + +change_path=0 +if [ "$old_path" != "$new_path" ] +then + change_path=1 +fi + +#================================================= +# STANDARD MODIFICATIONS +#================================================= +# STOP SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Stopping a systemd service..." --weight=1 + +ynh_systemd_action --service_name=$app --action=stop --log_path="/var/log/$app/$app.log" + +#================================================= +# MODIFY URL IN NGINX CONF +#================================================= +ynh_script_progression --message="Updating NGINX web server configuration..." --weight=1 + +nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf + +# Change the path in the NGINX config file +if [ $change_path -eq 1 ] +then + # Make a backup of the original NGINX config file if modified + ynh_backup_if_checksum_is_different --file="$nginx_conf_path" + # Set global variables for NGINX helper + domain="$old_domain" + path_url="$new_path" + # Create a dedicated NGINX config + ynh_add_nginx_config +fi + +# Change the domain for NGINX +if [ $change_domain -eq 1 ] +then + # Delete file checksum for the old conf file location + ynh_delete_file_checksum --file="$nginx_conf_path" + mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf + # Store file checksum for the new config file location + ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" +fi + +#================================================= +# GENERIC FINALISATION +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." --weight=1 + +# Start a systemd service +ynh_systemd_action --service_name=$app --action=start --log_path=systemd + +#================================================= +# RELOAD NGINX +#================================================= +ynh_script_progression --message="Reloading NGINX web server..." --weight=1 + +ynh_systemd_action --service_name=nginx --action=reload + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Change of URL completed for $app" --last diff --git a/scripts/install b/scripts/install new file mode 100644 index 0000000..ca230c9 --- /dev/null +++ b/scripts/install @@ -0,0 +1,147 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# MANAGE SCRIPT FAILURE +#================================================= + +ynh_clean_setup () { + ynh_clean_check_starting +} +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors + +#================================================= +# RETRIEVE ARGUMENTS FROM THE MANIFEST +#================================================= + +domain=$YNH_APP_ARG_DOMAIN +path_url="/" +is_public=$YNH_APP_ARG_IS_PUBLIC +architecture=$(ynh_detect_arch) + +app=$YNH_APP_INSTANCE_NAME + +#================================================= +# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS +#================================================= +ynh_script_progression --message="Validating installation parameters..." --weight=1 + +final_path=/var/www/$app +test ! -e "$final_path" || ynh_die --message="This path already contains a folder" + +# Register (book) web path +ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url + +#================================================= +# STORE SETTINGS FROM MANIFEST +#================================================= +ynh_script_progression --message="Storing installation settings..." --weight=2 + +ynh_app_setting_set --app=$app --key=domain --value=$domain +ynh_app_setting_set --app=$app --key=path --value=$path_url + +#================================================= +# STANDARD MODIFICATIONS +#================================================= +# FIND AND OPEN A PORT +#================================================= +ynh_script_progression --message="Finding an available port..." --weight=0 + +# Find an available port +port=$(ynh_find_port --port=9999) +ynh_app_setting_set --app=$app --key=port --value=$port + +#================================================= +# CREATE DEDICATED USER +#================================================= +ynh_script_progression --message="Configuring system user..." --weight=1 + +# Create a system user +ynh_system_user_create --username=$app --home_dir=$final_path + +#================================================= +# DOWNLOAD, CHECK AND UNPACK SOURCE +#================================================= +ynh_script_progression --message="Setting up source files..." --weight=4 + +ynh_app_setting_set --app=$app --key=final_path --value=$final_path + +# Download, check integrity, uncompress and patch the source from app.src +ynh_setup_source --dest_dir=$final_path --source_id="$architecture" + +mkdir "$final_path/.dispatch" +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" + +#================================================= +# NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Configuring NGINX web server..." --weight=3 + +# Create a dedicated nginx config +ynh_add_nginx_config + +#================================================= +# SPECIFIC SETUP +#================================================= +# MODIFY A CONFIG FILE +#================================================= +ynh_script_progression --message="Modifying a config file..." --weight=1 + +ynh_add_config --template="../conf/config.default.toml" --destination="$final_path//.dispatch/config.toml" + +#================================================= +# SETUP SYSTEMD +#================================================= +ynh_script_progression --message="Configuring a systemd service..." --weight=1 + +ynh_add_systemd_config + +#================================================= +# INTEGRATE SERVICE IN YUNOHOST +#================================================= +ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 + +yunohost service add $app --description="Web-based IRC client in Go" --log="/var/log/$app/$app.log" + +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." --weight=2 + +# Start a systemd service +ynh_systemd_action --service_name=$app --action=start --log_path=systemd + +#================================================= +# SETUP SSOWAT +#================================================= +ynh_script_progression --message="Configuring permissions..." --weight=1 + +# Make app public if necessary or protect it +if [ $is_public -eq 1 ] +then + ynh_permission_update --permission="main" --add="visitors" +fi + +#================================================= +# RELOAD NGINX +#================================================= +ynh_script_progression --message="Reloading NGINX web server..." --weight=2 + +ynh_systemd_action --service_name=nginx --action=reload + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Installation of $app completed" --last diff --git a/scripts/remove b/scripts/remove new file mode 100644 index 0000000..74f07d2 --- /dev/null +++ b/scripts/remove @@ -0,0 +1,74 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# LOAD SETTINGS +#================================================= +ynh_script_progression --message="Loading installation settings..." --weight=1 + +app=$YNH_APP_INSTANCE_NAME + +domain=$(ynh_app_setting_get --app=$app --key=domain) +port=$(ynh_app_setting_get --app=$app --key=port) +final_path=$(ynh_app_setting_get --app=$app --key=final_path) + +#================================================= +# STANDARD REMOVE +#================================================= +# REMOVE SERVICE INTEGRATION IN YUNOHOST +#================================================= + +# Remove the service from the list of services known by YunoHost (added from `yunohost service add`) +if ynh_exec_warn_less yunohost service status $app >/dev/null +then + ynh_script_progression --message="Removing $app service..." --weight=1 + yunohost service remove $app +fi + +#================================================= +# STOP AND REMOVE SERVICE +#================================================= +ynh_script_progression --message="Stopping and removing the systemd service..." --weight=1 + +# Remove the dedicated systemd config +ynh_remove_systemd_config + +#================================================= +# REMOVE APP MAIN DIR +#================================================= +ynh_script_progression --message="Removing $app main directory..." --weight=6 + +# Remove the app directory securely +ynh_secure_remove --file="$final_path" + +#================================================= +# REMOVE NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Removing NGINX web server configuration..." --weight=5 + +# Remove the dedicated NGINX config +ynh_remove_nginx_config + +#================================================= +# GENERIC FINALIZATION +#================================================= +# REMOVE DEDICATED USER +#================================================= +ynh_script_progression --message="Removing the dedicated system user..." --weight=1 + +# Delete a system user +ynh_system_user_delete --username=$app + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Removal of $app completed" --last diff --git a/scripts/restore b/scripts/restore new file mode 100644 index 0000000..103149e --- /dev/null +++ b/scripts/restore @@ -0,0 +1,108 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source ../settings/scripts/_common.sh +source /usr/share/yunohost/helpers + +#================================================= +# MANAGE SCRIPT FAILURE +#================================================= + +ynh_clean_setup () { + ynh_clean_check_starting +} +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors + +#================================================= +# LOAD SETTINGS +#================================================= +ynh_script_progression --message="Loading settings..." --weight=1 + +app=$YNH_APP_INSTANCE_NAME + +domain=$(ynh_app_setting_get --app=$app --key=domain) +path_url=$(ynh_app_setting_get --app=$app --key=path) +final_path=$(ynh_app_setting_get --app=$app --key=final_path) + +#================================================= +# CHECK IF THE APP CAN BE RESTORED +#================================================= +ynh_script_progression --message="Validating restoration parameters..." --weight=2 + +ynh_webpath_available --domain=$domain --path_url=$path_url \ + || ynh_die --message="Path not available: ${domain}${path_url}" +test ! -d $final_path \ + || ynh_die --message="There is already a directory: $final_path " + +#================================================= +# STANDARD RESTORATION STEPS +#================================================= +# RESTORE THE NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Restoring the NGINX configuration..." + +ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" + +#================================================= +# RECREATE THE DEDICATED USER +#================================================= +ynh_script_progression --message="Recreating the dedicated system user..." --weight=1 + +# Create the dedicated user (if not existing) +ynh_system_user_create --username=$app --home_dir=$final_path + +#================================================= +# RESTORE THE APP MAIN DIR +#================================================= +ynh_script_progression --message="Restoring $app main directory..." --weight=4 + +ynh_restore_file --origin_path="$final_path" + +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" + +#================================================= +# SPECIFIC RESTORATION +#================================================= +# RESTORE SYSTEMD +#================================================= +ynh_script_progression --message="Restoring the systemd configuration..." --weight=5 + +ynh_restore_file --origin_path="/etc/systemd/system/$app.service" +systemctl enable $app.service --quiet + +#================================================= +# INTEGRATE SERVICE IN YUNOHOST +#================================================= +ynh_script_progression --message="Integrating service in YunoHost..." + +yunohost service add $app --description="Web-based IRC client in Go" --log="/var/log/$app/$app.log" + +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." --weight=1 + +ynh_systemd_action --service_name=$app --action=start --log_path=systemd + +#================================================= +# GENERIC FINALIZATION +#================================================= +# RELOAD NGINX +#================================================= +ynh_script_progression --message="Reloading NGINX web server..." --weight=1 + +ynh_systemd_action --service_name=nginx --action=reload + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Restoration completed for $app" --last diff --git a/scripts/upgrade b/scripts/upgrade new file mode 100644 index 0000000..a3ed47e --- /dev/null +++ b/scripts/upgrade @@ -0,0 +1,140 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# LOAD SETTINGS +#================================================= +ynh_script_progression --message="Loading installation settings..." --weight=2 + +app=$YNH_APP_INSTANCE_NAME + +domain=$(ynh_app_setting_get --app=$app --key=domain) +path_url=$(ynh_app_setting_get --app=$app --key=path) +final_path=$(ynh_app_setting_get --app=$app --key=final_path) +port=$(ynh_app_setting_get --app=$app --key=port) +architecture=$(ynh_detect_arch) + +#================================================= +# CHECK VERSION +#================================================= +ynh_script_progression --message="Checking version..." + +upgrade_type=$(ynh_check_app_version_changed) + +#================================================= +# ENSURE DOWNWARD COMPATIBILITY +#================================================= +ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 + +# Cleaning legacy permissions +if ynh_legacy_permissions_exists; then + ynh_legacy_permissions_delete_all + + ynh_app_setting_delete --app=$app --key=is_public +fi + +#================================================= +# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP +#================================================= +ynh_script_progression --message="Backing up $app before upgrading (may take a while)..." --weight=4 + +# Backup the current version of the app +ynh_backup_before_upgrade +ynh_clean_setup () { + # restore it if the upgrade fails + ynh_restore_upgradebackup +} +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors + +#================================================= +# STANDARD UPGRADE STEPS +#================================================= +# STOP SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Stopping a systemd service..." --weight=1 + +ynh_systemd_action --service_name=$app --action=stop --log_path=systemd + +#================================================= +# CREATE DEDICATED USER +#================================================= +ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1 + +# Create a dedicated user (if not existing) +ynh_system_user_create --username=$app --home_dir=$final_path + +#================================================= +# DOWNLOAD, CHECK AND UNPACK SOURCE +#================================================= + +if [ "$upgrade_type" == "UPGRADE_APP" ] +then + ynh_script_progression --message="Upgrading source files..." --weight=5 + + # Download, check integrity, uncompress and patch the source from app.src + ynh_setup_source --dest_dir=$final_path --source_id="$architecture" --keep="$final_path/.dispatch/config.toml" +fi + +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" + +#================================================= +# NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=2 + +# Create a dedicated nginx config +ynh_add_nginx_config + +#================================================= +# SETUP SYSTEMD +#================================================= +ynh_script_progression --message="Configuring a systemd service..." --weight=2 + +# Create a dedicated systemd config +ynh_add_systemd_config + +#================================================= +# SETUP LOGROTATE +#================================================= +ynh_script_progression --message="Upgrading logrotate configuration..." --weight=1 + +# Use logrotate to manage app-specific logfile(s) +ynh_use_logrotate --non-append + +#================================================= +# INTEGRATE SERVICE IN YUNOHOST +#================================================= +ynh_script_progression --message="Integrating service in YunoHost..." + +yunohost service add $app --description="Web-based IRC client in Go" --log="/var/log/$app/$app.log" + +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." --weight=1 + +ynh_systemd_action --service_name=$app --action=start --log_path=systemd + +#================================================= +# RELOAD NGINX +#================================================= +ynh_script_progression --message="Reloading NGINX web server..." --weight=1 + +ynh_systemd_action --service_name=nginx --action=reload + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Upgrade of $app completed" --last