--- metaLinks: alternates: - https://app.gitbook.com/s/bTMBgpWwhtAF08xfMYTs/advanced/reset-admin --- # Reset the admin user's password If your Portainer admin forgets their password, follow these steps to reset it. There are three methods depending on your Portainer environment. For each method, the following command line arguments can be applied:
ArgumentDescription Example
--passwordSet the new admin password in plaintext that will be bcrypt-hashed before storage. If omitted, a strong random password is generated and written to stdout on success. Mutually exclusive with --password-hash.docker run --rm -v portainer_data:/data portainer/helper-reset-password --password "MyNewP@ssw0rd"
--password-hashSet the admin password using a precomputed bcrypt hash. The value is stored as-is and will not be re-hashed. Mutually exclusive with --password.docker run --rm -v portainer_data:/data portainer/helper-reset-password --password-hash "$2y$..."
--data-pathThe path to the Portainer data store inside the container. Defaults to /data. Use this to point to a different mount or directory if needed.docker run --rm -v portainer_data:/portainerdata portainer/helper-reset-password --data-path /portainerdata
## Method 1: Resetting the admin password if Portainer runs as a container {% hint style="info" %} You would typically use this method if you run the Portainer Server on Docker Standalone. {% endhint %} First, go to our [reset password container helper](https://github.com/portainer/helper-reset-password) in GitHub, then stop the Portainer container by running this command: ``` docker stop "id-portainer-container" ``` Next, run the helper using the following command (you'll need to mount the Portainer data volume): {% hint style="warning" %} If your Portainer data volume has a different name than `portainer_data` or you are using a bind mount for your data volume, you will need to adjust the mount in the below `docker run` command to suit your path. {% endhint %} ``` docker pull portainer/helper-reset-password docker run --rm -v portainer_data:/data portainer/helper-reset-password ``` If successful, the output should look like this: ``` 2020/06/04 00:13:58 Password successfully updated for user: admin 2020/06/04 00:13:58 Use the following password to login: &_4#\3^5V8vLTd)E"NWiJBs26G*9HPl1 ``` If the helper is unable to find an admin user to update, it will create a new one for you. If the username `admin` is already used, it will create a user named `admin-[randomstring]`: ``` 2022/08/10 07:36:33 [WARN] Unable to retrieve user with ID 1, will try to create, err: object not found inside the database 2022/08/10 07:36:33 Admin user admin-u0512b3f0v4dqk7o successfully created 2022/08/10 07:36:33 Use the following password to login: Sr#]YL_6D0k8Pd{pA9^|}F32j5J4I=av ``` Finally, use this command to start the Portainer container then try logging in with the new password: ``` docker start "id-portainer-container" ``` ## Method 2: Resetting the admin password if Portainer runs as a stack/service {% hint style="info" %} You would typically use this method if you run the Portainer Server on Docker Swarm. {% endhint %} First, scale the Portainer service to zero using this command: ``` docker service scale portainer_portainer=0 ``` Next, run the [reset password container helper](https://github.com/portainer/helper-reset-password) using the same bind-mount/volume as the data volume: {% hint style="warning" %} If your Portainer data volume has a different name than `portainer_data` or you are using a bind mount for your data volume, you will need to adjust the mount in the below `docker run` command to suit your path. {% endhint %} ``` docker pull portainer/helper-reset-password docker run --rm -v portainer_portainer_data:/data portainer/helper-reset-password ``` If successful, the output should look like this: ``` 2020/06/04 00:13:58 Password successfully updated for user: admin 2020/06/04 00:13:58 Use the following password to login: &_4#\3^5V8vLTd)E"NWiJBs26G*9HPl1 ``` If the helper is unable to find an admin user to update, it will create a new one for you. If the username `admin` is already used, it will create a user named `admin-[randomstring]`: ``` 2022/08/10 07:36:33 [WARN] Unable to retrieve user with ID 1, will try to create, err: object not found inside the database 2022/08/10 07:36:33 Admin user admin-u0512b3f0v4dqk7o successfully created 2022/08/10 07:36:33 Use the following password to login: Sr#]YL_6D0k8Pd{pA9^|}F32j5J4I=av ``` Finally, start up the Portainer service scaling using this command then try logging in with the new password: ``` docker service scale portainer_portainer=1 ``` ## Method 3: Resetting the admin password if Portainer is deployed in a Kubernetes cluster {% hint style="info" %} You would typically use this method if you run the Portainer Server on a Kubernetes cluster. {% endhint %} First, scale the Portainer deployment to zero using this command: ``` kubectl scale deploy portainer --replicas=0 -n portainer ``` Next, create a pod using the [reset password container helper](https://github.com/portainer/helper-reset-password) image and mount the Portainer data volume. Create a pod YAML file using the command below: {% hint style="info" %} You may need to change the YAML below to match your Portainer deployment (for example if using a different `claimName`). {% endhint %} ``` cat > passreset.yml<< EOF apiVersion: v1 kind: Pod metadata: name: passreset spec: volumes: - name: data persistentVolumeClaim: claimName: portainer containers: - name: passreset image: portainer/helper-reset-password volumeMounts: - mountPath: "/data" name: data restartPolicy: Never EOF ``` Create the password reset pod using the command below: ``` kubectl apply -f passreset.yml -n portainer ``` Once the new pod is created and transitions into a completed state, you can see the new password in the pod logs: ``` kubectl logs passreset -n portainer ``` If successful, the output should look something like this: ``` 2020/06/04 00:13:58 Password successfully updated for user: admin 2020/06/04 00:13:58 Use the following password to login: &_4#\3^5V8vLTd)E"NWiJBs26G*9HPl1 ``` Finally, scale up the Portainer deployment using this command then try logging in with the new password: ``` kubectl scale deploy portainer --replicas=1 -n portainer ``` You can delete the password reset pod using the below command: ``` kubectl delete pod passreset -n portainer ```