bitovi/Deploy Ollama and Open WebUI

Deploy your own LLM (large language model) like llama3 with a web based UI to an EC2 instance.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Maintainedlast commit Feb 6, 2025
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: bitovi/github-actions-deploy-ollama@8f8149c4e81f93e93e8f591264083d611870871f # v0.2.1

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
disable_signupDisable user signup for the application.nofalse
ollama_modelsComma separated list of models to download automatically.no""
aws_access_key_idAWS access key IDno
aws_secret_access_keyAWS secret access keyno
aws_session_tokenAWS session tokenno
aws_default_regionAWS default regionnous-east-1
aws_resource_identifierSet to override the AWS resource identifier for the deployment. Defaults to `${org}-{repo}-{branch}`. Use with destroy to destroy specific resources.no
aws_additional_tagsA JSON object of additional tags that will be included on created resources. Example: `{"key1": "value1", "key2": "value2"}`no
checkoutSpecifies if this action should checkout the codenotrue
tf_stack_destroyWhether to destroy the Terraform stack on completion.nofalse
tf_state_file_nameThe name of the Terraform state file.yes
tf_state_file_name_appendAppend a suffix to the state file name to allow unique state management.no
tf_state_bucketThe S3 bucket name where the Terraform state file will be stored.yes
tf_state_bucket_destroyWhether to destroy the state bucket on stack completion.no
ansible_ssh_to_private_ipMake Ansible connect to the private IP of the instance. Only usefull if using a hosted runner in the same network.no
ansible_start_docker_timeoutAmmount of time in seconds it takes Ansible to mark as failed the startup of docker. Defaults to `300`no
env_aws_secretSecret name to pull env variables from AWS Secret Manager, could be a comma separated list, read in order. Expected JSON content.no
env_repoFile containing environment variables to be used with the appno
env_ghsGitHub Secret Name containing `.env` file style to be used with the app.no
env_ghvGitHub Variable Name containing `.env` file style to be used with the app.no
aws_ec2_instance_createDefine if an EC2 instance should be creatednotrue
aws_ec2_ami_filterAWS AMI Filter string. Will be used to lookup for lates image based on the string. Defaults to `ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*`.no
aws_ec2_ami_ownerOwner of AWS AMI image. This ensures the provider is the one we are looking for. Defaults to `099720109477`, Canonical (Ubuntu).no
aws_ec2_ami_idAWS AMI ID. Will default to lookup for latest image of the `aws_ec2_ami_filter` string. This will override `aws_ec2_ami_filter` lookup.no
aws_ec2_ami_updateSet this to true if you want to recreate the EC2 instance if there is a newer version of the AMI.no
aws_ec2_iam_instance_profileThe AWS IAM instance profile to use for the EC2 instanceno
aws_ec2_instance_typeType of AWS EC2 instance to deploy.noinf1.xlarge
aws_ec2_instance_root_vol_sizeDefine the volume size (in GiB) for the root volume on the AWS Instance.no20
aws_ec2_instance_root_vol_preserveSet this to true to avoid deletion of root volume on termination. Defaults to false.no
aws_ec2_security_group_nameThe name of the EC2 security groupno
aws_ec2_create_keypair_smCreate a key pair using AWS Secrets Manager.no
aws_ec2_instance_public_ipAdd a public IP to the instance or not. (Not an Elastic IP)notrue
aws_ec2_port_listList of ports to be enabled as an ingress rule in the EC2 SG, in a [xx,yy] format - Not the ELBno
aws_ec2_additional_tagsA JSON object of additional tags that will be included on created resources. Example: `{"key1": "value1", "key2": "value2"}`no
aws_vpc_createDefine if a VPC should be createdno
aws_vpc_nameSet a specific name for the VPCno
aws_vpc_cidr_blockDefine Base CIDR block which is divided into subnet CIDR blocks. Defaults to 10.0.0.0/16.no
aws_vpc_public_subnetsComma separated list of public subnets. Defaults to 10.10.110.0/24no
aws_vpc_private_subnetsComma separated list of private subnets. If none, none will be created.no
aws_vpc_availability_zonesComma separated list of availability zones. Defaults to `aws_default_region.no
aws_vpc_idAWS VPC ID. Accepts `vpc-###` values.no
aws_vpc_subnet_idSpecify a Subnet to be used with the instance. If none provided, will pick one.no
aws_vpc_enable_nat_gatewayEnables NAT gatewayno
aws_vpc_single_nat_gatewayCreates only one NAT gatewayno
aws_vpc_external_nat_ip_idsComma separated list of IP IDS to reuse in the NAT gatewaysno
aws_vpc_additional_tagsA JSON object of additional tags that will be included on created resources. Example: `{"key1": "value1", "key2": "value2"}`no
aws_r53_enableEnables the usage of Route53 to manage DNS records.no
aws_r53_domain_nameDefine the root domain name for the application. e.g. app.comno
aws_r53_sub_domain_nameDefine the sub-domain part of the URL. Defaults to `${org}-${repo}-{branch}`
aws_r53_root_domain_deployDeploy to root domain. Will generate two DNS recrods, one for root, another for wwwno
aws_r53_enable_certMakes the application use a certificate by enabling a certificate lookup.notrue
aws_r53_cert_arnDefine the certificate ARN to use for the applicationno
aws_r53_create_root_certGenerates and manage the root cert for the applicationno
aws_r53_create_sub_certGenerates and manage the sub-domain certificate for the applicationno
aws_r53_additional_tagsA JSON object of additional tags that will be included on created resources. Example: `{"key1": "value1", "key2": "value2"}`no
docker_installDefine if docker should be installed. After this, docker-compose up will be excecuted.notrue
docker_remove_orphansToggle --remove-orphans flag. Defaults to false.no
docker_full_cleanupSet to true to run docker-compose down and docker system prune --all --force --volumes after.no
docker_repo_app_directory_cleanupWill generate a timestamped compressed file and delete the app repo directory.no
docker_cloudwatch_enableToggle cloudwatch creation for Docker containers.notrue
docker_cloudwatch_lg_nameLog group name. Will default to aws_identifier if none.no
docker_cloudwatch_skip_destroyToggle deletion or not when destroying the stack.no
docker_cloudwatch_retention_daysNumber of days to retain logs. 0 to never expire.no
namedescription
aws_vpc_idThe selected VPC ID used.
vm_urlThe URL of the generated app
instance_endpointThe URL of the generated ec2 instance
ec2_sg_idSG ID for the EC2 instance