Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. Gitea
  3. Need help to enable autosign

Need help to enable autosign

Scheduled Pinned Locked Moved Solved Gitea
27 Posts 5 Posters 14.7k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • jaschaezraJ Offline
    jaschaezraJ Offline
    jaschaezra
    wrote on last edited by
    #1

    Hi!

    I wanted to enable autosign and ran in an issue I can not solve.

    I set the .gnupg folder for the git-User
    export GNUPGHOME=/app/data/appdata/home/.gnupg
    created keys and everything.

    But: The moment Gitea wants to sign a commit it fails as I have no possibility to set GNUPGHOME. .

    Maybe anyone has an idea.

    nebulonN 1 Reply Last reply
    0
    • jaschaezraJ jaschaezra

      Hi!

      I wanted to enable autosign and ran in an issue I can not solve.

      I set the .gnupg folder for the git-User
      export GNUPGHOME=/app/data/appdata/home/.gnupg
      created keys and everything.

      But: The moment Gitea wants to sign a commit it fails as I have no possibility to set GNUPGHOME. .

      Maybe anyone has an idea.

      nebulonN Offline
      nebulonN Offline
      nebulon
      Staff
      wrote on last edited by
      #2

      @jaschaezra we may have to add support for that in the packaging then. Do you have a link to a tutorial or docs on how to setup the auto-signing?

      jaschaezraJ 1 Reply Last reply
      0
      • nebulonN nebulon

        @jaschaezra we may have to add support for that in the packaging then. Do you have a link to a tutorial or docs on how to setup the auto-signing?

        jaschaezraJ Offline
        jaschaezraJ Offline
        jaschaezra
        wrote on last edited by
        #3

        @nebulon That would be great.

        there is no real tutorial, the documentation is quite...vague. it is here: https://docs.gitea.io/en-us/signing/

        What needs ti be done (and not written down in the documentation): create a password less key.

        I normaly do it like this:

        change to the git User (su git)

        create file 'genkey-batch':

        %no-protection
        Key-Type: default
        Subkey-Type: default
        Name-Real: Gitea
        Name-Email: git@GITEADOMAIN
        Expire-Date: 0
        

        Execute key generation:

        gpg --batch --gen-key genkey-batch
        

        the Key will be added to the keychain which resides in /home/$USER/.gnupg

        You can change this with
        export GNUPGHOME=/app/data/appdata/home/.gnupg

        In the app.ini you need to add the following:

        [repository.signing]
        SIGNING_KEY = default
        SIGNING_NAME = Gitea
        SIGNING_EMAIL = git@GITEADOMAIN
        INITIAL_COMMIT = always
        CRUD_ACTIONS = pubkey, twofa, parentsigned
        WIKI = never
        MERGES = pubkey, twofa, basesigned, commitssigned
        

        The last three entries can and should be configured by the Instance Gitea-Owner, depending on what should be auto signed.

        the only thing which needs to be changed if you do it like I did is to add

        export GNUPGHOME=/app/data/appdata/home/.gnupg
        

        to the shell environment. then it works (well, it did on my old server with other paths, but it worked :))

        the only thing I would do if I package would be to add GNUPGHOME as standard and add a note in the documentation how to enable autosign.

        1 Reply Last reply
        1
        • nebulonN Offline
          nebulonN Offline
          nebulon
          Staff
          wrote on last edited by
          #4

          Thanks for the detailed description. I have changed the package to allow adding the keys and set the GNUPGHOME (this change is not published yet). It all seems fine, but I am not sure how to test or check if the signing actually was performed. Also do I have to set something for a git repository in gitea specifically to make it sign the commits?

          jaschaezraJ 1 Reply Last reply
          2
          • nebulonN nebulon marked this topic as a question on
          • nebulonN nebulon

            Thanks for the detailed description. I have changed the package to allow adding the keys and set the GNUPGHOME (this change is not published yet). It all seems fine, but I am not sure how to test or check if the signing actually was performed. Also do I have to set something for a git repository in gitea specifically to make it sign the commits?

            jaschaezraJ Offline
            jaschaezraJ Offline
            jaschaezra
            wrote on last edited by
            #5

            @nebulon I would love to test it. 🙂

            When you create a repository and init it from the webfrostend, then this commit is signed by Gitea. So in fact all the things you do in the webfrontend.

            These settings
            INITIAL_COMMIT = always CRUD_ACTIONS = pubkey, twofa, parentsigned
            say: Always sign the initial commit. Sign every other commits if the User has set a pub key OR enabled TFA or if the parent commit is signed.

            Hope that helps.

            nebulonN 1 Reply Last reply
            1
            • jaschaezraJ jaschaezra

              @nebulon I would love to test it. 🙂

              When you create a repository and init it from the webfrostend, then this commit is signed by Gitea. So in fact all the things you do in the webfrontend.

              These settings
              INITIAL_COMMIT = always CRUD_ACTIONS = pubkey, twofa, parentsigned
              say: Always sign the initial commit. Sign every other commits if the User has set a pub key OR enabled TFA or if the parent commit is signed.

              Hope that helps.

              nebulonN Offline
              nebulonN Offline
              nebulon
              Staff
              wrote on last edited by
              #6

              @jaschaezra the change is quite small https://git.cloudron.io/cloudron/gitea-app/-/commit/32eebcff8fd7c095d4e88cba396e693cb12bfbbe

              It would be great if you could test this. Basically checkout the app package repo and run cloudron build && cloudron install in the folder. Granted you have the cloudron cli tool installed and configured for your Cloudron already.

              jaschaezraJ 3 Replies Last reply
              1
              • nebulonN nebulon

                @jaschaezra the change is quite small https://git.cloudron.io/cloudron/gitea-app/-/commit/32eebcff8fd7c095d4e88cba396e693cb12bfbbe

                It would be great if you could test this. Basically checkout the app package repo and run cloudron build && cloudron install in the folder. Granted you have the cloudron cli tool installed and configured for your Cloudron already.

                jaschaezraJ Offline
                jaschaezraJ Offline
                jaschaezra
                wrote on last edited by jaschaezra
                #7

                @nebulon Thanks! I will test it later tonight and provide feedback!

                EDIT How do I build it? cloudron build asks for a registry...

                1 Reply Last reply
                1
                • nebulonN nebulon

                  @jaschaezra the change is quite small https://git.cloudron.io/cloudron/gitea-app/-/commit/32eebcff8fd7c095d4e88cba396e693cb12bfbbe

                  It would be great if you could test this. Basically checkout the app package repo and run cloudron build && cloudron install in the folder. Granted you have the cloudron cli tool installed and configured for your Cloudron already.

                  jaschaezraJ Offline
                  jaschaezraJ Offline
                  jaschaezra
                  wrote on last edited by
                  #8
                  This post is deleted!
                  1 Reply Last reply
                  0
                  • nebulonN nebulon

                    @jaschaezra the change is quite small https://git.cloudron.io/cloudron/gitea-app/-/commit/32eebcff8fd7c095d4e88cba396e693cb12bfbbe

                    It would be great if you could test this. Basically checkout the app package repo and run cloudron build && cloudron install in the folder. Granted you have the cloudron cli tool installed and configured for your Cloudron already.

                    jaschaezraJ Offline
                    jaschaezraJ Offline
                    jaschaezra
                    wrote on last edited by
                    #9

                    @nebulon I got the image built but I can not install it.

                    Location: x
                    Port SSH_PORT: 29418
                    Failed to install app: 409 message: Port 29418-tcp is in use```
                    nebulonN 1 Reply Last reply
                    0
                    • jaschaezraJ jaschaezra

                      @nebulon I got the image built but I can not install it.

                      Location: x
                      Port SSH_PORT: 29418
                      Failed to install app: 409 message: Port 29418-tcp is in use```
                      nebulonN Offline
                      nebulonN Offline
                      nebulon
                      Staff
                      wrote on last edited by
                      #10

                      @jaschaezra seems like you already have an instance using the default port there. Try to run cloudron install -p for interactive way to set a different port.

                      jaschaezraJ 1 Reply Last reply
                      0
                      • nebulonN nebulon

                        @jaschaezra seems like you already have an instance using the default port there. Try to run cloudron install -p for interactive way to set a different port.

                        jaschaezraJ Offline
                        jaschaezraJ Offline
                        jaschaezra
                        wrote on last edited by
                        #11

                        @nebulon I do not know what is going on on my system but I seriously fucked something up 😞

                        Sorry, I just can not test it at the moment 😞

                        nebulonN 1 Reply Last reply
                        0
                        • jaschaezraJ jaschaezra

                          @nebulon I do not know what is going on on my system but I seriously fucked something up 😞

                          Sorry, I just can not test it at the moment 😞

                          nebulonN Offline
                          nebulonN Offline
                          nebulon
                          Staff
                          wrote on last edited by
                          #12

                          @jaschaezra there is no time pressure at all. Hope you get your system back up again though. If it is Cloudron related, let us know of course.

                          jaschaezraJ 1 Reply Last reply
                          1
                          • nebulonN nebulon

                            @jaschaezra there is no time pressure at all. Hope you get your system back up again though. If it is Cloudron related, let us know of course.

                            jaschaezraJ Offline
                            jaschaezraJ Offline
                            jaschaezra
                            wrote on last edited by
                            #13

                            @nebulon It worked for me 🙂

                            So it would be great if this can be deployed in the container. (With the latest update :D)

                            nebulonN 1 Reply Last reply
                            1
                            • jaschaezraJ jaschaezra

                              @nebulon It worked for me 🙂

                              So it would be great if this can be deployed in the container. (With the latest update :D)

                              nebulonN Offline
                              nebulonN Offline
                              nebulon
                              Staff
                              wrote on last edited by
                              #14

                              @jaschaezra thanks for testing and confirming the fix. I have pushed a new package now.

                              jaschaezraJ 1 Reply Last reply
                              1
                              • nebulonN nebulon has marked this topic as solved on
                              • nebulonN nebulon

                                @jaschaezra thanks for testing and confirming the fix. I have pushed a new package now.

                                jaschaezraJ Offline
                                jaschaezraJ Offline
                                jaschaezra
                                wrote on last edited by
                                #15

                                @nebulon I just want to add some screen I just made because I forgot them to create 😄

                                This is how you'll see it in the repository:
                                Bildschirm­foto 2022-11-29 um 20.26.02.png

                                When you take a look at the commit:
                                Bildschirm­foto 2022-11-29 um 20.26.08.png

                                The name is set in app.ini

                                For the key-creation:
                                It is much easier to do it like this:

                                gpg --default-new-key-algo rsa4096 --gen-key
                                

                                then enter the Name, the Email (git@DOMAIN) and NO password!

                                That's it.

                                jaschaezraJ 1 Reply Last reply
                                1
                                • jaschaezraJ jaschaezra

                                  @nebulon I just want to add some screen I just made because I forgot them to create 😄

                                  This is how you'll see it in the repository:
                                  Bildschirm­foto 2022-11-29 um 20.26.02.png

                                  When you take a look at the commit:
                                  Bildschirm­foto 2022-11-29 um 20.26.08.png

                                  The name is set in app.ini

                                  For the key-creation:
                                  It is much easier to do it like this:

                                  gpg --default-new-key-algo rsa4096 --gen-key
                                  

                                  then enter the Name, the Email (git@DOMAIN) and NO password!

                                  That's it.

                                  jaschaezraJ Offline
                                  jaschaezraJ Offline
                                  jaschaezra
                                  wrote on last edited by
                                  #16

                                  @jaschaezra BTW, you can set a Gravatar/Libravatar for git@DOMAIN and upload e.g. the gitea Logo which then is displayed.

                                  Bildschirm­foto 2022-11-29 um 20.58.47.png

                                  1 Reply Last reply
                                  2
                                  • jaschaezraJ Offline
                                    jaschaezraJ Offline
                                    jaschaezra
                                    wrote on last edited by
                                    #17

                                    This is odd - after working for a looong time I suddenly get this error when creating a repository and initializing it:

                                    CreatePost, initRepository: initRepoCommit: git commit: exit status 128 - error: gpg failed to sign the data
                                    fatal: failed to write commit object
                                     - error: gpg failed to sign the data
                                    fatal: failed to write commit object
                                    

                                    I first thought that maybe the key is gone. By checking this I found that:

                                    root@0f44f577-d0e0-42e6-a371-d3914aba0014:/home/git# sudo -u git gpg --list-keys
                                    gpg: Fatal: can't create directory '/home/git/.gnupg': Read-only file system
                                    root@0f44f577-d0e0-42e6-a371-d3914aba0014:/home/git# 
                                    

                                    I have not changed anything and I do not know when this happened as I was not using my git for the last ~9 months.

                                    Any idea what is going on @nebulon?

                                    1 Reply Last reply
                                    0
                                    • nebulonN Offline
                                      nebulonN Offline
                                      nebulon
                                      Staff
                                      wrote on last edited by
                                      #18

                                      Just briefly rereading the thread, did you set GNUPGHOME for git user so it uses the correct (writeable) folder? Seems like the one which is used should be export GNUPGHOME=/app/data/appdata/home/.gnupg

                                      robiR jaschaezraJ 2 Replies Last reply
                                      1
                                      • nebulonN nebulon

                                        Just briefly rereading the thread, did you set GNUPGHOME for git user so it uses the correct (writeable) folder? Seems like the one which is used should be export GNUPGHOME=/app/data/appdata/home/.gnupg

                                        robiR Offline
                                        robiR Offline
                                        robi
                                        wrote on last edited by
                                        #19

                                        @nebulon might be nice to have these set when terminal is launched including HOME.

                                        Conscious tech

                                        1 Reply Last reply
                                        0
                                        • nebulonN nebulon

                                          Just briefly rereading the thread, did you set GNUPGHOME for git user so it uses the correct (writeable) folder? Seems like the one which is used should be export GNUPGHOME=/app/data/appdata/home/.gnupg

                                          jaschaezraJ Offline
                                          jaschaezraJ Offline
                                          jaschaezra
                                          wrote on last edited by
                                          #20

                                          @nebulon I now get a new error:

                                          root@0f44f577-d0e0-42e6-a371-d3914aba0014:/home/git# sudo -u git bash
                                          git@0f44f577-d0e0-42e6-a371-d3914aba0014:~$ export GNUPGHOME=/app/data/appdata/home/.gnupg
                                          git@0f44f577-d0e0-42e6-a371-d3914aba0014:~$ gpg --list-keys
                                          gpg: WARNING: unsafe permissions on homedir '/app/data/appdata/home/.gnupg'
                                          git@0f44f577-d0e0-42e6-a371-d3914aba0014:~$
                                          
                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Bookmarks
                                          • Search